Redis集群

本文探讨了如何通过RDB+AOF实现持久化,解决单机的局限性,并介绍了主从复制、哨兵模式和自动分区(Cluster)在提高Redis可用性和容错性方面的关键原理。重点讲述了哨兵机制确保主节点切换的自动性和哨兵间通信的作用。
摘要由CSDN通过智能技术生成

持久化
RDB+AOF
RDB,通过fork+copy on write
fork只复制指针操过很快,保证数据时点性
copy on write 父进程在写操作时,会先复制对应的数据,再进行修改,保证数据的隔离性

单机
单点故障、容量有限、性能瓶颈

AKF
X:全量,镜像
Y:业务,功能
Z:优先级,逻辑再拆分

CAP
C:一致性
A:可用性
P:分区容错性

提供高可用性(high availability)

主从
主节点具有读写功能,从节点通过RDB+AOF+缓存消息队列同步主节点数据,从节点只有读的功能
缺点:主节点又变成了单点故障,需要人工手动重新指定主节点,以及让其他从节点追随新的主节点

哨兵哨兵(Sentinel)
每个Redis服务对应一个哨兵,哨兵之间通过发布订阅的方式获得其他的从节点和哨兵信息,然后会保存到自己的配置文件中,哨兵之间会两两通信,当主节点故障后,通过哨兵间的过半机制,确定是否从新选择新的主节点。(不用过半机制时,容易出现脑裂问题)

自动分区(Cluster)
Redis 集群没有使用一致性hash, 而是引入了 哈希槽的概念.
Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽.集群的每个节点负责一部分hash槽。
每个Redis中存有其他主节点的hash槽,当获取数据时,当计算出的hash槽不是当前节点时,则会返回正确的节点信息,以便客户端重新请求。(客户端可以将这些映射储存起来)

数据聚合操作 hash tag {xx}key1、{xx}key2

在新增主节点时,可以从其他主节点中迁移一部分hash;下线主节点时同理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值