reids(3)
作者:互联网
1.redis 过期策略:
1.定时过期
2.惰性过期
3.定期过期
2.redis内存淘汰策略:
全局的键空间选择性移除
noeviction:当内存不足以容纳新写入数据时,新写入操作会报错。
allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key。(这个是最常用的)
allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key。
设置过期时间的键空间选择性移除
volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key。
volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个key。
volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的key优先移除。
3.redis 数据存储格式:
RDB 阶段性持久化数据到 一个dump.rdb 文件
AOF 记录每一条redis命令 aof文件中
目前版本的redis,在项目中我们一般采用混合模式的方式进行设置。
涉及到主备 主从 一主多从,主主从情况进行数据同步时候:
全量复制: 主 生成RDB,同步给从 ,从写入自己的磁盘,再加载到内存,这个阶段生成的新的aof命令再同步过来
部分复制: 重连后, 根据offset 复制偏移量 进行复制 ,如果offset过旧,或者失效,进行全量复制。
exec、discard、watch、multi
4.redis 常见的几种问题:
缓存雪崩 :
存在大量key 同时失效 设置随机时间
缓存击穿:
缓存中无,数据库中有,大量并发情况下 设置热点数据 加互斥锁
缓存穿透:
数据库 缓存中都不存在该数据 布隆过滤器 -- 存在不一定存在,不存在一定不存在
5.redis集群选举原理
当slave从节点发现自己的master主节点边为FAIL状态,尝试进行Failover ,以期望成为新的master。
由于挂掉的master可能有多个slave, 从而存在多个salve竞争成为master节点的过程:
1.slave发现自己的master节点边为FAIL
2.将自己记录的集群的currentEpoch+1,并广播 FAILOVER_AUTH_REQUST 信息。
3.其他节点收到该信息,只有master相应,判断请求者合法性,并发送 FAILOVER_AUTH_ACK ,对每一个epoch只发送一次ack。
4.尝试failover的slave收集master返回的 failover_auth_ack.
5.slave收到 超过半数master的ack后,边成新的Master
解释:为什么至少三个主节点,如果两个,其中一个挂了,只剩下一个节点,不能选举成功
6.slave节点广播pong消息通知其他集群节点
标签:过期,reids,redis,master,内存,移除,节点 来源: https://www.cnblogs.com/dhdnm/p/16603581.html