Redis高可用

Redis持久化

rdb:在指定时间间隔内,将内存中的数据生成快照文件,数据恢复时只需将快照文件读取到内存中

#############################rdb触发条件#############################
#redis.config中配置
save 900 1 #900秒内进行1次key的变更就会触发rdb操作
save 300 10 #300秒内进行10次key的变更就会触发rdb操作
save 60 10000 #60秒内进行10000次key的变更就会触发rdb操作
#还有一些隐藏触发条件
1.执行flushdb执行时
2.退出redis服务时

#############################rdb文件恢复#############################
只需将rdb文件放入到redis启动目录下,redis启动时就是检查并恢复其中的数据

rdb方式的优点:

  1. 适合大规模数据恢复
  2. 对数据完整性要求不高的场景下

rdb方式的缺点:

  1. 需要满足指定条件下才能生成快照文件,如发生宕机事件则数据存在丢失的情况
  2. save进程会占用内存空间

aof:记录指令信息,数据恢复时,只需将这些指令重新执行一遍即可

#############################aof开启#############################
appendonly yes #开启aof功能
appendfilename "appendonly.aof" #指定持久化文件名称
# appendfsync always #每次修改都会 sync。消耗性能
appendfsync everysec #每秒执行一次 sync,可能会丢失这1s的数据!
# appendfsync no #不执行 sync,这个时候操作系统自己同步数据,速度最快!

aof方式的优点

  1. 每一次修改都同步,文件的完整会更加好!
  2. 每秒同步一次,可能会丢失一秒的数据
  3. 从不同步,效率最高的!

aof方式的缺点

  1. 相对于数据文件来说,aof远远大于 rdb,修复的速度也比 rdb慢!
  2. aof 运行效率也要比 rdb 慢,所以我们redis默认的配置就是rdb持久化!

主从复制

#############################Redis部署环境#############################
主机环境:192.168.109.201 6379 node_01、192.168.109.202 6379 node_02、192.168.109.203 6379 node_03
其中node_01作为主节点,node_02和node_03作为从节点

#############################主从配置#############################
node_02和node_03节点执行如下命令:
slaveof 192.168.109.201 6379 #指定node_01为主节点  注意:如果主节点设置了密码,需修改配置文件redis.conf 中masterauth值
slaveof no one #取消主从配置

#############################查看主从配置情况#############################
info replication #查看主从配置情况

主从复制的优点

  1. 提高了Redis的可用性,主节点不可用时可以切换到从节点来提供服务

主从复制的缺点

  1. 主从切换时需要人工参与
  2. 主节点是单机的,写能力和存储能力有限

哨兵模式

哨兵模式主要解决主从切换需人工参与的问题。

#############################Redis部署环境#############################
主机环境:192.168.109.201 6379 node_01、192.168.109.202 6379 node_02、192.168.109.203 6379 node_03
其中node_01作为主节点,node_02和node_03作为从节点

#############################Redis Sentinel配置#############################
复制sentinel.conf配置文件到sentinel_201.conf、sentinel_202.conf、sentinel_202.conf三个文件,分别对应Redis服务三个节点
分别修改配置文件:
	sentinel monitor mymaster 192.168.109.201 6379 2 #2表示两个sentinel节点判定Redis节点不可用时,才进行主从切换
	sentinel monitor mymaster 192.168.109.202 6379 2
	sentinel monitor mymaster 192.168.109.203 6379 2
	
#############################启动Redis Sentinel#############################
./redis-sentinel conf/sentinel_201.conf
./redis-sentinel conf/sentinel_202.conf
./redis-sentinel conf/sentinel_203.conf
posted @ 2020-10-14 09:58  程序猿不是猴  阅读(116)  评论(0)    收藏  举报