redis集群

2021-02-22  本文已影响0人  宋song一

redis集群三种方式
超过20g内存,建议集群

1. 主从复制

利用“SLAVEOF NO ONE 不会丢弃同步所得数据集”这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行


在这里插入图片描述

实现方式:slaveof命令(从机使用),配置
主从复制依赖rdb


在这里插入图片描述 在这里插入图片描述

maxmemory 分片不宜过大


在这里插入图片描述

2. sentinel

sentinel 不存储数据,监控主从节点. 自动故障转移
sentinel.conf

#2,指明当有多少个sentinel认为一个master失效时,master才算真正失效。
sentinel monitor mymaster 127.0.0.1 6379 2
# 除了第一行,其他配置的通用格式 sentinel [option_name] [master_name] [option_value]

sentinel down-after-milliseconds mymaster 60000 
# sentinel会向master发送心跳PING来确认master是否存活,如果master在“一定时间范围”内不回应PONG 或者是回复了一个错误消息,那么这个sentinel会主观地认为这个master已经不可用了。而这个down-after-milliseconds就是用来指定这个“一定时间范围”的,单位是毫秒。

sentinel failover-timeout mymaster 180000
# sentinel执行failover超过设置时间时会被认为失败。将由其他sentinel继续执行failover,单位毫秒

sentinel parallel-syncs mymaster 1
# 在发生failover主从切换时,这个选项指定了最多可以有多少个slave同时对新的master进行同步,这个数字越小,完成主从故障转移所需的时间就越长,但是如果这个数字越大,就意味着越多的slave因为主从同步而不可用。可以通过将这个值设为1来保证每次只有一个slave处于不能处理命令请求的状态。
在这里插入图片描述

启动

   # 方式1
   redis-server s:/redis/sentinel/sentinel.conf --sentinel
   # 方式2,需要有redis-sentinel程序才行,该程序可以从redis源码中拷贝
   redis-sentinel s:/redis/sentinel/sentinel.conf

3. cluster

4. 缓存问题

服务高可用
穿透:缓存未命中,穿透到底层数据库
击穿:一点超时,大并发击穿到底层数据库
击穿是访问一个key,雪崩是redis的数据大批量消失(雪崩:缓存集体过期,或者Redis宕机)

缓存雪崩解决:redis高可用(异地多活),限流降级,数据预热


image.png
上一篇下一篇

猜你喜欢

热点阅读