Redis学习
充满幻想的杨先生
技术改变命运
展开
-
Redis集群模式
文章目录节点槽指派在集群中执行命令重新分片复制与故障转移节点一个Redis集群通常由多个节点(node)组成,在刚开始的时候,每个节点都是相互独立的。它们都处于一个只包含自己的集群,我们通过命令连接各个工作点CLUSTER MEET <ip> <port>Redis服务器在启动时会根据cluster-enabled配置选项是否为yes来决定是否开启服务器的集群模式,节点(运行在集群模式下的Redis服务器)会继续使用所有在单机模式中使用的服务器组件。在进行节点连接的过程中原创 2020-05-11 17:47:29 · 163 阅读 · 0 评论 -
Sentinel实现原理
启动并且初始化SentinelSentinel本质上只是一个运行在特殊模式下的Redis服务器,当一个Sentinel启动时,它需要执行以下步骤:1)初始化服务器。2)将普通Redis服务器使用的代码替换成Sentinel专用代码。3)初始化Sentinel状态。4)根据给定的配置文件,初始化Sentinel的监视主服务器列表。5)创建连向主服务器的网络连接。对于每个被Sentinel监视的主服务器来说,Sentinel会创建两个连向主服务器的异步网络连接:❑一个是命令连接,这个连接专门用于原创 2020-05-10 19:37:00 · 729 阅读 · 0 评论 -
Sentinel
SentinelSentinel(哨岗、哨兵)是Redis的高可用性(high availability)解决方案:由一个或多个Sentinel实例(instance)组成的Sentinel系统(system)可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。server1的下线时长超过用户设定的下线时长上限时,Sentinel系统就会对serv原创 2020-05-10 18:49:13 · 118 阅读 · 0 评论 -
复制
旧版复制功能的实现Redis的复制功能分为同步和命令传播两个操作:同步操作用于将从服务器的数据库状态更新至主服务器当前所处数据库状态命令传播操作用于主服务器的数据库状态被修改,导致主从服务器状态不一致时,让主从服务器的数据库重新回到一致状态同步从服务器对主服务器的同步操作需要通过向主服务器发送SYNC命令来完成,以下是SYNC命令的执行步骤:1)从服务器向主服务器发送SYNC命令。2)收到SYNC命令的主服务器执行BGSAVE命令,在后台生成一个RDB文件,并使用一个缓冲区记录从现在开始执原创 2020-05-09 21:07:39 · 167 阅读 · 0 评论 -
Redis对象基础数据类型底层编码
字符串对象字符串的 编码可以是 int,raw,或者embstr如果一个 字符串对象保存的 是整数值,并且 这个 整数值可以用long类型来 表示,那么字符串对象会将整数值保存在字符串对象结构的ptr属性里面(将void*转换为long),并且将字符串对象的 编码设置成int如果字符串保存的是一个 字符串值,并且这个 字符串值的 长度大于44字节,那么字符串对象 将使用一个简单动态字符串来...原创 2020-05-07 17:44:24 · 212 阅读 · 0 评论 -
Redis的底层数据结构
文章目录1.演示数据类型的实现2.简单动态字符串3.链表4.字典5.跳跃表6.整数集合1.演示数据类型的实现OBJECT ENCODING key 该命令是用来显示那五大数据类型的底层数据结构。比如对于String类型:我们可以看到实现string数据类型的数据结构有 embstr 以及 int。再比如 list 数据类型:2.简单动态字符串Redis是用C语言写的,但...原创 2020-04-01 12:15:59 · 121 阅读 · 0 评论 -
Redis基础数据类型
Redis 数据类型Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。String(字符串)string是Redis最基本的数据结构,它将以一个键和一个值存储与Redis内部,它犹如Java的Map结构,让Redis通过键去找到值string 类型是二进制安全的。意思是 redis 的 st...原创 2020-03-30 23:08:16 · 102 阅读 · 0 评论