redis高级小记

一、删除策略

删除策略指对已经过期的数据删除的方式

1.1定时删除 :  到点就删   牺牲CPU的性能换取内存的空间
1.2 惰性删除 :   当使用该数据时进行检查,如果到期就删除   牺牲内存的空间换取CPU的性能
1.3 定期删除 : 以固定的频率去检查key是否过期,如果过期就删除

淘汰策略

当添加新数据时如果redis的内存已经使用完,此时redis会删除部分数据,保证新数据进来。
redis会优先删除设置了过期时间的数据(易失数据),如果处理完之后空间还不够此时在做全库扫描

淘汰易失数据:
volatile-lru:单位时间内最长时间不使用的数据
volatile-lfu:单位时间内使用最少的数据
volatile-ttl:挑选将要过期的数据淘汰
volatile-random:任意选择数据淘汰


检测全库数据
allkeys-lru:单位时间内最长时间不使用的数据
allkeLyRs-lfu:单位时间内最少使用的数据
allkeys-random:任意选择数据淘汰,相当于随机

放弃数据驱逐
no-enviction(默认)

三、主从结构

    一主带多从,主只负责写,从负责读。

    主从复制三个阶段:
    1、建立连接阶段
    2、数据同步阶段,要将master中的数据要复制到slave中去,要经历全量复制(rdb)、部分复制
    注意:在部分复制阶段可能引起全量复制,为了避免全量复制频繁发生我们可以调整复制缓冲区的大小,或在操作不频繁的时间进行同步
    3、命令传播阶段


四、哨兵模式

    在主从结构的基础之上,引入哨兵,哨兵不负责数据处理只负责对主从结构的监控以及故障转移

    哨兵模式工作的三个阶段:
    1、监控阶段
    2、通知阶段
    3、故障转移阶段

        主观下线 odown
        客观下线 sdown   超过一半的哨兵认为下线则为客户下线


        哨兵之间投票选择leader,由leader来做故障转移


五、集群模式
      

六、企业级解决方案 

1、缓存预热

    就是在应用启动之前,就应该保证将热点数据存储到redis中。(nginx+lua)

2、缓存雪崩
    当redis中有大量的key集中过期,此时有大量请求直接访问到数据库,导致数据宕机,数据库宕机之后影响到其它功能的正常使用。 
设置key的过期时间时不要集中过期

3、缓存击穿
    当某一个热点的key过期,使得短时间大量的请求访问到数据库,导致数据库崩溃。我们可以将这些热点key它的过期时间设置长一
些或者不过期

4、缓存的穿透
    由于用户传递过来一些无效的参数,导致在缓存中查不到该数据,从而请求 直接访问到数据库,  解决方法,即使根据参数查不到
数据也要将它存到redis 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值