> 文章列表 > hjr-详细说一下Redis集群

hjr-详细说一下Redis集群

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万多个哈希槽 取模