redis集群

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宕机)

  • 缓存穿透解决–:布隆过滤器,缓存空对象
    布隆过滤器.png
    缓存空对象可能出现的问题:
    image.png

  • 缓存击穿解决:设置热点数据永不过期,加互斥锁
    image.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值