Redis主从和集群

Redis的主从复制机制实现数据实时同步,提升读写性能并提供容灾恢复。主从复制包括全量复制和增量复制,一主多从支持读写分离。哨兵模式自动监测和故障转移,确保高可用性。Redis集群通过分区实现水平扩容,数据分布于多个节点,使用CRC16算法分配槽位,保证部分节点失效时仍能处理命令请求。
摘要由CSDN通过智能技术生成

Redis主从复制

  主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。
作用:1、读写分离,性能扩展 2、容灾快速恢复
在这里插入图片描述

主从复制原理

  Slave启动成功连接到master后会发送一个sync命令。
  Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令, 在后台进程执行完毕之后,master将传送整个数据文件(rdb文件)到slave,以完成一次完全同步。
  全量复制:slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
  增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步。
  只要是重新连接master,一次完全同步(全量复制)将被自动执行。

一主多从

  从服务器宕机后再次启动就变成一个独立的服务器,要再次成为别的服务器的从服务器需要重新执行slaveof命令。主服务器节点挂了以后,从服务器依然把该服务器当做主服务器。

薪火相传和反客为主

薪火相传:从服务器下可以有自己的从服务器,这些从服务器由上一级从服务器进行同步。
反客为主:主服务器挂了以后,从服务器执行slaveof no one可以变为主服务器。

哨兵模式

  反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库,原主服务器重启将变为从服务器。
  配置sentiel.conf文件,填入sentinel monitor mymaster(给主服务器起的别名) 127.0.0.1 6379(主服务器地址及端口)1(同意迁移的哨兵最少数量,达到该数量才会进行替换),执行redis-sentinel /文件路径/sentinel.conf。
  新的主服务器选举的条件依次为:1、优先级靠前的:slave-priority 100,值越小优先级越高。2、偏移量最大的:偏移量是指获得原主机数据完整程度。3、runid最小的:每个redis实例启动后都会随机生成一个40位的runid。

Redis集群

  Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。
  Redis 集群通过分区(partition)来提供一定程度的可用性(availability): 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求。
  

Redis如何分配数据到节点

  一个 Redis 集群包含 16384 个插槽(hash slot), 数据库中的每个键都属于这 16384 个插槽的其中一个,集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽 。
  注意:不在一个slot下的键值,是不能使用mget,mset等多键操作。可以通过{}来定义组的概念,从而使key中{}内相同内容的键值对放到一个slot中去。如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值