美文网首页
Redis的三种模式:主从、哨兵、集群

Redis的三种模式:主从、哨兵、集群

作者: zfh_51d2 | 来源:发表于2020-09-13 22:35 被阅读0次

    一、Redis的主从模式

    通过执行replicaof命令,让一个服务器去复制另一个服务器的数据。被复制的服务器称为Master主服务,对主服务器进行复制的服务器称为Slave从服务器。
    为保证数据副本的一致,主从库之间采用的是读写分离的方式。
    读操作:主库、从库都可以接收。
    写操作:首先到主库执行,然后,主库将写操作同步给从库。

    实现原理步骤:

    1. 从服务器向主服务器发送SYNC命令
    2. 主服务器收到SYNC命令后,执行BGSAVE命令,在后台生成RDB文件,使用缓冲区记录从现在开始执行的所有的写命令。
    3. 当主服务器的BGSAVE命令执行完毕后,主服务器后将BGSAVE命令生成的RDB文件发送给从服务器,从服务器接收并载入这个RDB文件,将自己的数据库状态更新至主服务器执行BGSAVE命令时的数据库状态。
    4. 主服务器将记录在缓冲区里面的所有写命令发送给从服务器,从服务器执行这些写命令,将自己的数据库状态更新至主服务器数据库当前所处的状态。
    图片.png

    二、哨兵机制

    主从库模式下,如果从库发生故障了,客户端可以继续向主库或其他从库发送请求,进行相关的操作,但是如果主库发生故障了,那就直接会影响到从库的同步,因为从库没有相应的主库可以进行数据复制操作了。所以引入了哨兵机制,哨兵其实就是一个运行在特殊模式下的 Redis 进程,主从库实例运行的同时,它也在运行。哨兵主要负责的就是三个任务:监控主库运行状态,并判断主库是否客观下线。在主库客观下线后,选取新主库。选出新主库后,通知从库和客户端。

    图片.png

    三、Redis集群

    集群方案采用哈希槽来处理数据和实例之间的映射关系。一个切片集群共有 16384 个哈希槽,这些哈希槽类似于数据分区,每个键值对都会根据它的 key,被映射到一个哈希槽中。例如,如果集群中有 N 个实例,那么,每个实例上的槽个数为 16384/N 个。


    图片.png

    相关文章

      网友评论

          本文标题:Redis的三种模式:主从、哨兵、集群

          本文链接:https://www.haomeiwen.com/subject/dxqbektx.html