从官方文档看Redis

news2025/1/6 21:56:21

一.核心能力

Redis

1.In-memory data structures 内存数据结构

Redis以"键值对" 的方式来存储数据, 是一种"非关系型数据库"

ps: MySQL以"表"的方式来存储数据, 是一种"关系型数据库"

2.Programmability 可编程性

Redis可以用脚本(Lua)来执行一些操作  (也可以直接执行一些简单交互式命令)

3.Extensibility 可扩展性

通过 C, C++, Rust这几个语言来编写Redis扩展

很好理解~就是虽然有很好用的功能,但是还是不合心意~那就自己搞出一个更匹配的咯

4.Persistence 持久性

Redis存在内存上~但是呢,数据很容易丢吖~比如突然程序关闭什么的

所以,Redis在硬盘上也存了一份数据, 内存为主,硬盘为辅~~ 若果真没了,就拿硬盘的数据顶上

5.Clustering 集群

水平可扩展性~

我们说了~Redis存内存上,但是内存空间小啊~引入了分布式,多台主机~~所以在多个主机部署多个Redis节点,每个节点存一部分数据(yep,是很像我们之前说的分库分表~)

6.High availability 高可用性

或者说备份~~就是,结合一下4,丢了内存主数据,就让硬盘从数据直接顶上 -> 系统可用性提升

二.应用场景

这个也可以说是,展开说说Redis用来干嘛的~~比如,我们上篇文章谈到的,用为数据库,缓存,消息队列

1.Real-time data store 实时数据存储

就是相当于一个低延迟和高吞吐量的数据库咯~~比如搜索这方面~响应要很快(结合核心功能想)~就可以用Redis

敲黑板~~这里的Redis要存所有数据,不可以随便丢失数据

2.Caching & session storage 缓存和会话存储

会话缓存-> 我们之前谈这个就要说说 cookie,session~ 有了他们才能确认身份,不重复进行一些验证操作

但是,现在搞成了分布式,多台应用是服务器~谁知道负载因子把用户请求分配到哪台上?这就说明 , 每一次都要验证->天啊,我已经烦躁了,但是我却没遇到这种情况 所以,必然有了解决方案的!

i)让负载因子把同一个用户请求,打在同一个机器上(不能利用之前说的"轮询"了, 要用useId 比如~五台应用服务器,那就%5 根据余数看,扔哪台)

ii)用Redis, 将这些会话数据放在一台独立机器上存储~~ 这样应用服务器就可以再去这上面找咯~

缓存->辅助MySQL, 因为它慢 so我们利用二八原则(就是数据很多,但高频需要之占十分之二), 将那十分之二存Redis上~

敲黑板~~这里的Redis只是一个辅助加速,丢了也无所谓,因为MySQL里面存了所有数据

3.Streaming & messaging 流媒体和消息传递

就是它的初心啦~消息队列(可惜,它火不是因为这个~~, 毕竟优秀的消息队列很多~比如RabbitMQ, Kafka....)

消息队列 =>实现: 生产者消费者模型 => 好处: 解耦合, 削峰填谷(不易因为抗压不行而崩溃~~这个我介绍过的~)

三.Redis为什么快

okkk~~说完这几个 其实还有一个问题 就是 Redis快! 那具体我们只知道是因为在内存,so 还有没有别的原因?

1.核心功能都是简单逻辑 (就是存个数据)(不像MySQL,又是外键,又是索引........)

2.使用单线程(逻辑简单~so也不占太多CPU->不用多线程反而快了,节省一些开销)

3.IO多路复用(epoll) (一个线程管多个socket)

四.小结

我们现在已经了解了

Redis 内存数据 很快 分布式 和新特性 应用方面

话说得好 手下见真章 我们去用用~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/999708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Eclipse 安装串口终端工具

Eclipse已集成串口终端显示,只需要我们自己下载安装即可使用。使用SSH连接也差不多。 查看eclipse版本信息 help->About Eclipse 查看version,我的是4.7.3a,记住代号,我的是“Oxygen”,下面有用。 安装eclipse自带的“Termin…

【HELLO NEW WORLD】一封来自开放自动化时代的邀请函

施耐德电气开放自动化平台,迈向开放、高效与韧性、可持续、以人为本的未来工业。 HELLO WORLD 是人类在信息世界开启的第一行 也是我们走进自动化领域迎来的第一句问候 如今 面临向数字化与自动化加速转型的新变局 工业领域迫切地需要一场变革 走向更加高效、…

一名IT重装操作系统后的安装环境历程

1、安装JDK,配置环境变量(我一般默认安装,避免后期一些不必要的问题)。 下载链接 个人安装包可从下方下载: 链接:https://pan.baidu.com/s/1XIsjCQ2Y-r1m9H8MBlsILQ?pwd6ekm 提取码:6ekm …

惊!这么好用的纯html网页模板可还行?偷偷拿去做作业真是绝绝子!!

在这个万物vue的年代,网页设计越来越框架化。 上网搜个资料学习学习吧,咵咵咵,“游泳健身,vue了解一下” 我只是想简单地学个html,js啊!怎么就这么复杂! 曾几何时,在网上找个网页…

matlab rbf手写

clc;clear;format long; trainD0:0.1:10; outDsin(trainD).*trainD; outDoutD; dnumlength(trainD); %初始化参数学习率 lr_w00.1;%权值 lr_c00.1;%中心点 lr_sigma00.1;%神经节点的方差参数 iters10000;%最大迭代次数 minE1e-2;%误差小于他就停止 cnum150;%神经元个数 clinspa…

山西电力市场日前价格预测【2023-09-12】

日前价格预测 预测说明: 如上图所示,预测明日(2023-09-12)山西电力市场全天平均日前电价为344.48元/MWh。其中,最高日前电价为405.81元/MWh,预计出现在19: 15。最低日前电价为302.50元/MWh,预计…

电脑文件批量重命名:高效操作技巧

随着时间的推移,我们积累的文件和文件夹数量越来越多,需要对它们进行合理的命名和管理,以便更方便地查找和利用。而文件批量重命名功能可以帮助我们更高效地管理文件夹。下面介绍五种方式,帮助你更好地利用文件批量重命名工具&…

02_Flutter自定义Sliver组件实现分组列表吸顶效果

02_Flutter自定义Sliver组件实现分组列表吸顶效果 一.先上效果图 二.列表布局实现 比较简单,直接上代码,主要使用CustomScrollView和SliverToBoxAdapter实现 _buildSection(String title) {return SliverToBoxAdapter(child: RepaintBoundary(child: C…

Doodles版洞洞鞋3天售罄 蓝筹NFT卖货自救

加密资产市场仍在寒冬,上个牛市爆火的NFT正在经历第一次深熊,无数NFT项目遭市场清洗,玩家争相出逃。市场冷清到惨烈,哪怕是价值认可度最高的蓝筹NFT,也未能逃过持续暴跌的窘境,一些项目开始自救。 近期&am…

C# 反射机制

图片来自:https://www.cnblogs.com/tangge/p/3440605.html

体育场馆LED显示屏的分类及应用

体育场馆LED显示屏是用于体育场馆、体育赛事和体育娱乐活动的重要设备,它们具有不同的分类和应用。免费为你提供体育馆LED屏幕指南。 以下是体育场馆LED显示屏的一些常见分类和应用: 按用途分类: 比赛信息显示屏: 用于显示比赛的得…

Unit 2 uni-app入门

1 uni-app 介绍 1.1 什么是uni-app uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到Android、iOS、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝&…

[框架设计之道(二)]设备、任务设置及业务流程

[框架设计之道&#xff08;二&#xff09;]设备、任务设置及业务流程 说明 此文档是开发中对设备设置项的管理。因为硬件在使用的过程中涉及大量设置项&#xff0c;因此需要单独开一篇文档说明设备的设置和任务的设置。 一、设备设置 1.基础接口 /// <summary> /// 配置…

Python有向图从起点到终点遍历所有路径

参考文章&#xff1a;https://blog.csdn.net/weixin_39797176/article/details/121776940 输入数据说明&#xff1a; graph[1] [2, 3] 表示顶点1有边指向顶点2和3&#xff0c;将所有的边录入start(1,8)表示遍历从顶点1到顶点8的所有路径 graph {} allpaths [] solopath …

空气减压阀QAR2000-02 QAR2500-02 QAR2500-03 QAR3000-02

空气减压阀QAR1000-M5、QAR2000-01、QAR2000-02、QAR2500-02、QAR2500-03、QAR3000-02、QAR3000-03、QAR4000-03、QAR4000-04、QAR4000-06、QAR5000-06、QAR5000-10、QPR2000-01、QPR2000-02、XR4&#xff0c;空气过滤减压阀QPW2000-01、QPW2000-02、XFRU4&#xff0c;精密减压…

C# Onnx Yolov8 Seg 分割

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System…

数字孪生警务3D可视化系统有哪些作用?

数字孪生警务3D可视化系统是利用先进的数字技术和模拟技术&#xff0c;将真实的公安运行环境、设施和人员以虚拟的形式呈现出来的系统。它可以模拟公安部门的各种工作场景&#xff0c;为公安人员提供更直观、全面的信息&#xff0c;并发挥以下作用&#xff1a; 一、仿真演练和培…

第三章 Linux文件系统

第三章 Linux文件系统 ​ 文件系统是操作系统用于确定磁盘或分区上的文件的方法和数据结构&#xff0c;即文件在磁盘上的组织方法。文件系统由3部分组成&#xff1a;与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。 1.Ubuntu的文件系统 ​ 文件系统负责…

AI是风口还是泡沫?

KlipC报道&#xff1a;狂热的人工智能追捧潮有所冷静&#xff0c;投资者在“上头”的追涨之后&#xff0c;开始回归到对基本面的关注。 KlipC的合伙人Andi D表示&#xff1a;“近日&#xff0c;有关英伟达二季度“破纪录”财报涉嫌造假的话题正在社交媒体和投资者论坛中甚嚣尘上…

【转存】从 JMM 透析 volatile 与 synchronized 原理

在面试、并发编程、一些开源框架中总是会遇到 volatile 与 synchronized 。synchronized 如何保证并发安全&#xff1f;volatile 语义的内存可见性指的是什么&#xff1f;这其中又跟 JMM 有什么关系&#xff0c;在并发编程中 JMM 的作用是什么&#xff0c;为什么需要 JMM&#…