这本书出版时间较早,目前最新为第二版,基于Redis3.0进行研究编写。虽然Redis已更新至7.x,但是大体变化不大。
不到四百页,因为之前有Redis基础,对常用命令都有了解,并且也从网上博文了解过一些原理,所以这本书读起来也是很顺畅,花了七天看完。
关于Redis的内容
这本书出版时间较早,目前最新为第二版,基于Redis3.0进行研究编写。虽然Redis已更新至7.x,但是大体变化不大。
不到四百页,因为之前有Redis基础,对常用命令都有了解,并且也从网上博文了解过一些原理,所以这本书读起来也是很顺畅,花了七天看完。
耗时:约6h
写作背景:读完《Redis设计与实现》第二版 这本书后,感觉收获很多,特花时间组织思绪,默写梳理学到的知 识。这本书基于Redis3.0介绍,目前Redis版本更新至Redis7.x,部分与最新版本有些许出入,整体基本一致。日后阅读学习基于更新版本的Redis书籍后,再进行一次梳理。
Redis使用五大基本数据对象实现对全部功能的支持。
数据对象 | 编码(REDIS_ENCODING_*) | 说明 |
---|---|---|
字符串 | INT | 整数 |
EMBSTR | embstr编码的SDS | |
RAW | SDS | |
列表 | ZIPLIST | 压缩列表 (存在连锁更新的问题,但触发可能性小) |
LINKEDLIST | 双端链表 | |
哈希 | ZIPLIST | |
HT | ||
集合 | INTSET | 整数集合 |
HT | ||
有序集合 | ZIPLIST | |
SKIPLIST (实际代表SKIPLIST + HT) | 跳表 + 字典 |
来自客户端的命令都被抽象成文件事件,并被分排到与套接字相关联的事件处理器中进行处理。
比如serverCron,是一个周期事件。集群和哨兵状态下,还有独有的周期事件。
bgsave,save,rewriteaof,只有在进行bgsave时接收到rewriteaof会推迟rewriteaof执行,其他情况都会直接拒绝后来的命令。
为当前数据库状态(包括所有数据库)生成一个快照。
只保存协议格式的写命令。
主从服务器,将彼此均视为客户端。