Redis~提高Redis服务的主要三个方式:主从同步、哨兵模式、集群服务

  • 随着业务的不断发展,单机 Redis 的性能已经不能满⾜我们的需求了,此时我们需要将单机 Redis 扩展 为多机服务

主从同步

  • 主从同步也叫做主从复制, 是提高Redis服务的基础, 也是多机运行中最基础的一个, 主要把存储数据的节点叫做主节点, 把其他通过复制主节点的数据的副本节点叫做从节点
    在这里插入图片描述
  • 在Redis中一个主节点可以拥有多个从节点, 一个从节点也可以是其他服务器的 “主节点” 这也叫做从从同步(其根本上还是一主)

主从同步的优点

  1. 提高Redis服务性能: 可以将查询任务分配给从服务器, 用主服务器完成写操作, 这样极大的提高了程序运行的效率, 把所有压力分摊到各个服务器
  2. 提高稳定性: 当主服务宕机之后, 可以迅速将从服务器提升为主服务器
  3. 防止数据丢失: 当主服务器磁盘坏掉之后, 其他服务器依旧保留着相关数据, 不至于数据全部丢失

主从同步的缺点

  1. 一个致命问题就是, 当主服务器突然崩溃之后, 需要人工干预才能恢复Redis的正常使用

哨兵模式

  • 为了解决主从同步的缺点, 加一个哨兵时刻监视者主服务的情况, 一旦发现有问题并且确定之后, 就自动将从服务器提升为主服务器
    在这里插入图片描述

Redis Sentinel 的最⼩分配单位是⼀主⼀从

哨兵工作原理

  • 每个Sentinel 都会以每秒1次的频率, 向已知的主服务器、从服务器和以及其他的Sentinel 发送一个ping命令
  • 如果最后一个有效的ping命令回复时间超过默认值是30s的时间, 就会Sentinel 被标记为主观下线
  • 如果主服务器标记为主观下线, 那么正在监视这个主服务器的所有Sentinel 节点, 都会以每秒1次的频率进行确认, 一旦确认就进入主观下线状态
  • 如果有足够数量的Sentinel 在指定时间范围都认为这个主服务器确认主观下线, 那么这个主服务器被标记为客观下线, 此时所有的Sentinel 会按照规则协商出一个新的主节点

哨兵模式优缺点

  • 优点是其摆脱了出现Redis宕机时需要人工干预的缺点, 但是加的哨兵是额外的开销, 而且防止哨兵误判还有加入很多哨兵, 在选举新主节点的时候效率也不是很好.

集群服务

  • 集群服务是Redis多机运行的最完美的终极方案, 其完全抛弃了主从同步和哨兵模式, 真正实现了多主多从
    在这里插入图片描述
    从上图我们可以看出, 集群拥内部拥有多个主从同步, 因此, 集群有强大的平行扩展能力, 拥有多个主从节点, 理论上性能提高不少, 而且 避免了宕机的风险和哨兵的开销

猜你喜欢

转载自blog.csdn.net/Shangxingya/article/details/108503930