大白话说redis
2021-05-17 09:24:44 53 举报
通过白话+脑图的模式梳理记录redis的核心知识及原理(持续补充中)
作者其他创作
大纲/内容
常用命令
object encoding {key}
object refcount {key}
ttl {key}
slaveof 127.0.0.1 6379
cluster meet {ip} {port}
持久化
RDB
创建
手动
save
bgsave
自动
bgsave
加载
AOF
原理及步骤
追加 - append
写入 - write
同步 - sync
加载aof文件
AOF重写
主从复制
旧版
同步 - sync - 全量
啥时候
怎么搞
传播 - propagate - 增量
新版
psync - partial 部分同步
啥时候
怎么搞
检测
心跳检测
高可用
哨兵Sentinel
CMD-1: 10s一次 -> INFO
CMD2: 2s一次 -> PUBLISH __sentinel__:hello
CMD-3: 1s一次 -> PING
集群
启动
握手
slot 槽
上线
重分槽
复制
故障
检测
CMD: ping
转移
选一个小弟出来
小弟自己成为大哥
小弟开始接替大哥的工作
新的大哥通知其他地盘的大哥
订阅通知
频道 channel
subscribe 订阅
uncubscribe 退订
模式 pattern
数据结构
sds
与c的区别
类型
好处
避免了缓冲区溢出,覆盖其他内存区域
长度不用遍历字符数组,张手就来
修改字符串可以减少内存重分配次数
思想
dict
rehash
扩容
收缩
问题
1. 如何处理查询
2. 如何处理新增
intset
类型
int16
int32
int64
升级
降级
对象
结构
type 类型
string 字符串类型
int
整数值
embstr
字符串len<40
raw
字符串len>=40
list 列表类型
ziplist
linkedlist
quicklist
hash 哈希类型
ziplist
hashtable
set 集合类型
intset
hashtable
和list的区别
zset 有序集合类型
ziplist
skiplist
encoding 编码
*ptr
内存回收
引用计数-refcount
创建对象 +1
被一个程序使用 +1
不被使用 -1
对象共享
数据库
数据存储 - dict
过期键存储 - expires
存储
删除策略
定期删除
惰性删除
RDB处理
save
load
AOF处理
append
rewrite
主从复制处理
事务
实现
开始
入队
执行
监听
ACID
0 条评论
下一页