hjr-详细说一下Redis集群
Redis作用
缓存
一般我们用Redis做缓存,热点数据
击穿:访问到了过期的Key
穿透:访问一个不存在的key
雪崩:大量击穿
分布式锁
利用Hash结构,Key的唯一性在分布式系统中做进程级别的锁
消息队列
Redis有三种方式可以实现一个消息队列
1、利用List,做一个先入先出
2、利用发布订阅模式
3、利用Stream,和2的区别在于,Stream消费后消息仍旧保留
扩容
redis维护两个表H0,H1
平时只使用H0,当达到扩容因子1的时候,H1x2倍空间,H0数据遍历并迁移到H1,在普通的Redis操作的过程中并行去转移,渐进式哈希
集群
主从
一主多从,数据是一样的
主从之间做数据同步,缺点是,人工故障恢复
RDB和AOF两种模式
RDB是内存快照,特点是恢复快,但是丢失最近数据,耗费内存
AOF是日志复写,特点是恢复精度高,但是会日志越来越大,恢复越来越慢
哨兵
一主多从多哨兵,哨兵是节点
可以,心跳监控其他节点,故障自动恢复
缺点是哨兵也是故障点
哈希槽
环形结构,1万多个哈希槽,多节点 根据 一万多哈希槽取模
每个节点负责一部分哈希槽
每个哈希槽内一主多从
整体是多主多从去中心化的结构
任何一个节点故障,不影响其他节点负责的哈希槽
最多一万多个节点集群
一致性哈希算法
1、分布式系统的每个节点名+key 取哈希
2、一个哈希发布中心,给所有分布式节点统一发放哈希值
3、对 1万多个哈希槽 取模