
Redis
redis学习笔记
neei
不积跬步无以至千里,不积小流无以成江河
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis -- Redis独立功能实现
独立功能实现1,发布与订阅1.1 订阅与退订1.2 发送消息2,事务2.1 事务实现2.2 WATCH命令3,排序4,二进制数组 1,发布与订阅 redis发布与订阅由:PUBLISH、SUBSCRIBE、PSUBSCRIBE命令组成 1.1 订阅与退订 订阅频道:客户端执行SUBSCRIBE命令订阅某个或某些频道时候,服务器会将客户端与被订阅的频道在pubsub_channels字典中关联起来 退订频道:UNSUBSCRIBE命令会将pubsub_channels字典中绑定关系解除 订阅模式:客户端执原创 2020-11-29 13:20:16 · 434 阅读 · 0 评论 -
Redis -- 集群
一个redis集群通常由多个节点(node)组成,组建一个集群,需要将各个独立的节点连接起来,构成一个多节点的集群 通过CLUSTER MEET <ip> <port> 命令,让当前节点与ip、port指定的节点进行握手,将指定节点加入当前节点所在的集群中原创 2020-11-29 11:39:18 · 310 阅读 · 0 评论 -
Redis -- Sentinel哨兵机制
哨兵机制Sentinel1,Sentinel1.1 启动初始化Sentinel1.2 获取主服务器信息1.3 获取从服务器信息 1,Sentinel Sentinel(哨兵)是redis高可用的解决方案,一个或多个哨兵组成的系统可以监视任意多个主服务器以及下属的从服务器 被监视的主服务器下线时,自动将下线的主服务器下的某个从服务器升级为新的主服务器,由新主代替下线的旧主继续处理请求命令 1.1 启动初始化Sentinel 初始化服务器 将普通redis服务器使用的代码替换为Sentinel专用代码 初始原创 2020-11-27 00:05:05 · 191 阅读 · 0 评论 -
Redis -- 主从复制
主从复制1,主从复制1.1 同步1.2 命令传播1.3 PSYNC1.4 部分重同步实现1.5 PSYNC实现1.6 复制实现1.7 心跳检测 1,主从复制 执行SLAVEOF命令或设置slaveof选项,让一个服务器复制另一个服务器; 初次复制:从服务器没有复制过任何服务器,或从服务器当前要复制的主服务器和上次复制的主服务器不同 断线后重复制:处于命令传播阶段的主从服务器由于网络原因而中断复制,自动重连后,继续复制主服务器 1.1 同步 从服务器向主服务器发送SYNC命令 收到SYNC命令的主服务器执行原创 2020-11-26 23:41:17 · 185 阅读 · 0 评论 -
Redis -- 事件
Redis事件1,文件事件2,时间事件3,事件调度与执行 1,文件事件 reids服务器通过套接字与客户端连接,文件事件是对套接字操作的操作,服务器通过监听与客户端的通信产生的文件事件,处理这些事件来完成一系列网络通信 文件事件处理器 文件事件处理器由:套接字、I/O多路复用程序、文件事件分派器、事件处理器组成; 套接字:每当一个套接字准备好执行链接应答、写入、读取、关闭等操作时,就会产生一个文件事件;文件事件可能会并发出现,因为一个服务器通常会链接多个套接字 IO多路复用程序:复制监听多个套接字,将原创 2020-11-25 23:58:01 · 154 阅读 · 0 评论 -
Redis -- RDB & AOF持久化
RDB & AOF持久化1,RDB持久化1.1 RDB文件的创建和载入1.2 自动间隔性保存1.3 RDB文件结构 1,RDB持久化 1.1 RDB文件的创建和载入 文件创建 SAVE和BGSAVE都可用于生成RDB文件 SAVE命令(阻塞式创建文件):阻塞Redis服务进程,直到RDB文件创建完毕,期间不能处理任何命令请求 BGSAVE命令(非阻塞式创建文件):派生一个子进程,由子进程负责创建RDB文件,父进程可继续处理命令请求 文件载入 服务器载入RDB文件期间,会一直处于阻塞状态,直到载原创 2020-11-25 00:18:38 · 127 阅读 · 0 评论 -
Redis -- 单机数据库实现
单机实现1,数据库1.1 服务器中的数据库1.2 数据库的切换1.3 数据库键空间1.4 键的生存时间(过期时间)1.5 过期键删除策略1.6 过期键删除实现1.7 AOF/RDB和复制对过期键的处理1.8 数据库通知2,RDB持久化 1,数据库 1.1 服务器中的数据库 redis 服务器的所有数据库都保存在redisServer.db数组中,数组的每个项都是redisDb结构代表一个数据库,数量由redisServer.dbnum属性控制,默认会创建16个数据库(dbnum16) 1.2 数据库的切换原创 2020-11-23 23:39:05 · 269 阅读 · 0 评论 -
Redis -- 数据结构与对象
数据结构与对象1,简单动态字符串2,链表3,字典4,跳跃表5,整数集合6,压缩列表7,对象 1,简单动态字符串 SDS : redis 没有直接使用C语言的字符串,构建了一种简单动态字符串(simple dynamic string,即SDS)的抽象类型作为redis的默认字符串 SDS 用来保存字符串外,还被用作缓冲区,如:AOF缓存区,客户端输入缓冲区 C语言字符串 vs SDS 对比项 C语言字符串 SDS 获取字符串长度的复杂度 O(N) O(1) API安全性 不安全,会造成原创 2020-11-23 21:24:52 · 160 阅读 · 0 评论