redis
持久化机制
RDB
-
指定时间快照
-
优点
- 快,文件紧凑,父进程fork子进程
AOF
-
追加方式记录每次的服务器操作
-
后台重写,使得AOF文件的体积不至于过大
-
优点
-
可以使用不通的fsync策略
- 无fsync
- 每秒fsync
- 每次写fsync
- 子主题 4
-
可使用redis-check-aof工具修复
-
文件过大可再后台重写
-
文件恢复简单,移除追加命令
-
线程模型
IO模型
-
多路服务器
- EPOLL
回收策略
noeviction
allkeys-lru
volatile-lru
allkeys-random
volatile-random
volatile-ttl
volatile-lfu
allkeys-lfu
过期删除策略
精度
- 精度0~1毫秒
过期判据为时间戳,绝对量
方式
-
主动
- 访问到key时,发现并主动过期
-
被动
- 1.每10s,随机20个key过期检查
- 2.删除过期key
- 3.如果有25%的key过期,重复1
复制AOF中如何处理过期
- 为了正确的行为而不牺牲一致性,当一个key过期,DEL将会随AOF文字一起合成到所有附加slaves,在master实例中,这种方法时集中的,并且不存在一致性错误的机会,当slaves连接到master,不会独立过期keys(会等到master执行DEL命令),他们任然在数据集里,所以当slave选为master时,淘汰keys会独立执行,然后成为master。
集群方案
主从复制集群
- 手动切换
- 哨兵
分片集群
- 客户端实现路由索引的分片集群
- 使用中间件代理层的分片集群
- redis自身实现的cluster分片集群