有序集合对象 编码 有序集合的编码可以是ziplist或者skiplist ziplist ziplist编码的压缩列表对象使用压缩列表作为底层实现, 每个集合元素使用两个紧挨在一起的压缩列表节点来保存, 第一个节点保存元素的成员(member), 第二个元素保存元素的分值(score) 压缩列表内的集合元素按分值从小到大进行排序, 分值较小的元素被放置在靠近表头的方向, 而分值较大的元素则被放置在靠近表尾的方向 有序集合压缩列表实现方式 skiplist编码的有集合对象使用zset结构作为底层实现, 一个zset…

28 3 月, 2021 0条评论 167点热度 0人点赞 专注着 阅读全文

redis字符串对象

28 3 月, 2021 0条评论 131点热度 0人点赞 专注着 阅读全文

RDB持久化 Redis数据状态: 保存在Redis数据库中的数据被称作数据状态。   RDB文件的创建与载入 有两个Redis命令可以用于生成RDB文件, 一个是SAVE, 另一个是BGSAVE   RDB文件创建 SAVE命令会阻塞Redis服务器进程, 知道RDB文件创建完毕为止, 在服务器进程阻塞期间, 服务器不能处理任何命令请求. BGSAVE派生出一个子进程, 然后由子进程创建RDB, 服务器进程继续处理命令请求.   RDB文件载入 RDB文件的载入工作时在服务器启动时自…

24 3 月, 2021 0条评论 172点热度 0人点赞 专注着 阅读全文

与RDB持久化通过保存数据库中的键值对来记录数据库状态不同, AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。 AOF持久化的实现 AOF持久化功能的实现可以分为命令追加(append),文件写入,文件同步(sync)三个步骤 命令追加 当AOF持久化功能处于打开状态时, 服务器在执行完一个写命令之后,会以协议格式将被执行的写命令追加到服务器状态的aof_buf缓冲区的末尾:  struct redisServer {   // AOF缓冲区   sds aof_buf; } AOF文件的写…

21 3 月, 2021 1条评论 166点热度 0人点赞 专注着 阅读全文

什么是redis持久化 持久化就是把内存的数据写到磁盘中去, 防止服务宕机了内存数据丢失 redis 数据持久化方式 RDB rdb是Redis DataBase缩写 功能核心函数rdbSave和rdbLoad两个函数 rdbSave是将对象保存到RDB文件中 rdbLoad是将RDB文件中的数据加载到内存之中 AOF Aof 是Append-only file缩写 每当执行服务器任务或函数时, flushAppendOnlyFile函数会被调用, 这个函数执行以下两个工作 WRITE: 根据条件, 将aof_bu…

21 3 月, 2021 0条评论 177点热度 0人点赞 专注着 阅读全文

主从复制 主从复制原理 从服务器链接主服务器, 发送SYNC命令 主服务器收到SYNC命令后, 开始执行BGSAVE名称RDB文件并使用缓冲区记录伺候执行的所有写命令; 主从服务器BGSAVE执行完成后, 向所有从服务器发送快照文件, 并在发送期间继续记录被执行的写命令(异步同步数据); 从服务器收到快照文件后丢弃所有旧数据, 载入收到的快照 注服务器快照发送完毕后开始想从服务器发送缓冲区中的写命令 从服务器完成对快照的载入, 开始接受命令请求, 并执行来自主服务器缓冲区的写命令(从服务器初始化完成) 主服务器每执…

21 3 月, 2021 0条评论 137点热度 0人点赞 专注着 阅读全文

Strings Hashs: Lists: Sets: SortedSet Strings 是redis中最基本的数据类型, 虽然名称为Strings, 实际上也是一个map的结构, 提供了最基本的set,get,incr,descry的一些简便的操作 Lists 在Redis Lists中, 对应的采用的是链表的形式(LinkedList)的实现, 这就意味着, 即使List中包含了百万的元素, 在其头部或者尾部添加一个元素,基本上一个常数级别的。 在redis中采用链表的原因是, 能够在很大的列表上新增元素。 …

21 3 月, 2021 0条评论 165点热度 0人点赞 专注着 阅读全文

Redis 协议在以下三个目标之间进行折中: 易于实现 可以高效地被计算机分析(parse) 可以很容易地被人类读懂 网络层 客户端和服务器通过 TCP 连接来进行数据交互, 服务器默认的端口号为 6379 。 NOTE: 客户端和服务器发送的命令或数据一律以 \r\n (CRLF)结尾。 请求 Redis 服务器接受命令以及命令的参数。 服务器会在接到命令之后,对命令进行处理,并将命令的回复传送回客户端。 新版统一请求协议 新版统一请求协议在 Redis 1.2 版本中引入, 并最终在 Redis 2.0 版本成…

21 3 月, 2021 0条评论 220点热度 0人点赞 专注着 阅读全文