redis复制是基于 redis的集群,即redis集群中会有主从服务器,一个主节点会连接多个从节点,一个redis服务器如果想要成为另一台redis服务器的从节点,只需要使用命令slaveof of host port。

复制

redis复制是基于 redis的集群,即redis集群中会有主从服务器,一个主节点会连接多个从节点,一个redis服务器如果想要成为另一台redis服务器的从节点,只需要使用命令slaveof of host port。

复制的过程

  • 主服务器首先创建快照文件,发送到服务器,同时使用缓冲区记录执行时的写命令,快照文件发送完毕后,开始向从服务器发送缓冲区的写命令;
  • 从服务器移除旧数据,接收新数据;
  • 然后,主服务器每完成一次写命令,就向从服务器发送同样的执行命令;

如何解决负载

随着负载的 增大,主服务有可能更新所有的从服务器不会那么及时,因此,通常会引入中间层的redis来承担主服务器的复制工作。形成一个主从链;

Sentinel

sentinel是监听服务器的哨兵,如果集群中有主服务出现故障和下线,哨兵会主动选择合适的从服务器来承担主服务器的工作。

分片

分片的目的主要是为了提升性能,分片将数据划分为多个部分,可以将数据存储在多台机器。分片有以下几种方法:

  • 范围分片
    • 根据存储数据某个字段的范围进行分布到不同的redis服务器,比如数据范围在11000的存放在a服务器,10012000的存放在B服务器。
  • 哈希分片
    • 使用哈希函数将键转换成数字,再根据实例数量求模得出存储位置的实例。