当前位置: 首页 >  互联网技术 >  Redis 缓存过期策略和内存淘汰策略

Redis 缓存过期策略和内存淘汰策略

导读:缓存过期策略.定时删除 没人用.含义:在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除.优点:该策略可以立即清除过期的数据, 保证内存被尽快释放.缺点:若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧

缓存过期策略

定时删除 没人用

含义:在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除

优点:该策略可以立即清除过期的数据, 保证内存被尽快释放

缺点:若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张的情况下,CPU不能把所有的时间用来做要紧的事儿,还需要去花时间删除这些key 定时器的创建耗时,若为每一个设置过期时间的key创建一个定时器(将会有大量的定时器产生),性能影响严重

惰性删除 内置策略

含义:key过期的时候不删除,只有当访问这个key的时候才去判断缓存是不是过期,若过期,则删除,返回null。

优点:删除操作只发生在从数据库取出key的时候发生,而且只删除当前key,所以对CPU时间的占用是比较少的,而且此时的删除是已经到了非做不可的地步(如果此时还不删除的话,我们就会获取到了已经过期的key了)

缺点:对内存非常不友好,若大量的key在超出超时时间后没有被访问,长时间过去可能发生内存泄露(无用的垃圾占用了大量的内存)

定期删除

含义:每隔一定的时间,会扫描一定数量的的key,并清除其中已经过期的key (在redis.conf配置文件设置hz,1s刷新的频率)

该策略是前两者的一个折中方案。通过调整定时扫描的时间间隔和每次扫描的限定耗时,可以在不同情况下使得CPU和内存资源达到最优的平衡效果

缺点: 在内存友好方面,不如”定时删除”;在CPU时间友好方面,不如”惰性删除” 难点:合理设置删除操作的执行时长(每次删除执行多长时间)和执行频率(每隔多长时间做一次删除)(这个要根据服务器运行情况来定了)

看完上方三种可以得到结论 : 定时删除和定期删除为主动删除,Redis会定期主动淘汰一批已过去的key;惰性删除为被动删除:用到的时候才会去检验key是不是已过期,过期就删除

惰性删除为redis服务器内置策略

定期删除可以通过:

第一、配置redis.conf 的hz选项,默认为10 (即1秒执行10次,100ms一次,值越大说明刷新频率越快,最Redis性能损耗也越大)

第二、配置redis.conf的maxmemory最大值,当已用内存超过maxmemory限定时,就会触发主动清理策略

内存淘汰策略

Redis的内存淘汰策略

  1. noeviction:当内存不足以容纳新写入数据时,新写入操作会报错。该策略是Redis的默认淘汰策略,一般不会选用。

  2. allkeys-lru:当内存不足以容纳新写入数据时,基于LRU算法,从所有key中,移除最近最少使用的key。

  3. allkeys-random:当内存不足以容纳写入数据时,从所有key中,随机移除某个key,这个一般没人用。

  4. allkeys-lfu:当内存不足以容纳写入数据时,基于LFU算法,从所有key中,删除掉最不经常使用(使用次数最少)的key。

  5. volatile-lru:当内存不足以容纳写入数据时,基于LRU算法,在设置了过期时间的key中,移除最近最少使用的key。

  6. volatile-random:当内存不足以容纳写入数据时,在设置了过期时间的key中,随机移除某个key。

  7. volatile-ttl:当内存不足以容纳写入数据时,在设置了过期时间的key中,(剩余存活时间最短)的key删除掉。

  8. volatile-lfu:当内存不足以容纳写入数据时,基于LFU算法,从设置了过期时间的key中,删除掉最不经常使用(使用次数最少)的key。

内容
  • Cocos Creator 打包原生 Android 包该如何选择 NDK 版本?
    Cocos Creator 打包
    2023-12-09
    大家好,我是晓衡!.记得前段时间,在一些群里看到有小伙伴说 Cocos Creator 打包 Android 原生 AP
  • JVM调优篇:探索Java性能优化的必备种子面试题
    JVM调优篇:探索Java性能优
    2023-12-04
    JVM内存模型.首先面试官会询问你在进行JVM调优之前,是否了解JVM内存模型的基础知识。这是一个重要的入门问题。JVM
  • 漫谈垃圾回收算法
    漫谈垃圾回收算法
    2023-12-02
    GC简介:垃圾回收(Garbage Collection)也被称为自动内存管理技术,在现代编程语言中使用得相当广泛,常见
  • 可爱儿童内衣套装,优质棉质,柔软透气,呵护宝宝肌肤
    可爱儿童内衣套装,优质棉质,柔软
    2024-01-05
    可爱儿童内衣套装,优质棉质,柔软透气,呵护宝宝肌肤.宝宝的皮肤是非常娇嫩的,所以选择合适的内衣套装对于宝宝的健康和舒适至
  • 时尚潮流运动鞋
    时尚潮流运动鞋
    2024-01-15
    时尚潮流运动鞋.时尚潮流运动鞋一直是年轻人喜爱的时尚单品,它不仅舒适耐穿,更是一种个性的象征。随着时尚潮流不断更新,运动
  • 修身弹力牛仔裤
    修身弹力牛仔裤
    2023-12-26
    修身弹力牛仔裤:展现你的魅力.一、时尚的必备单品.修身弹力牛仔裤一直都是时尚界的必备单品,它不仅可以展现出个人的魅力,还
  • 休闲简约短袖衬衫
    休闲简约短袖衬衫
    2023-12-21
    休闲简约短袖衬衫.现代人生活节奏快,休闲简约的穿着成为时尚潮流。短袖衬衫作为经典的休闲单品,一直备受时尚人士的青睐。它舒
  • 休闲宽松T恤衫,释放自在舒适气息
    休闲宽松T恤衫,释放自在舒适气息
    2023-12-26
    休闲宽松T恤衫,释放自在舒适气息.在这个喧嚣的都市中,人们的生活节奏变得越来越快,压力也越来越大。因此,人们更加注重舒适
  • 潮流风衣大衣,彰显都市时尚风采
    潮流风衣大衣,彰显都市时尚风采
    2023-12-16
    潮流风衣大衣,彰显都市时尚风采.潮流风衣大衣一直是时尚界备受追捧的单品之一。它既能为我们遮风挡雨,又能为我们穿出时尚感,
  • 时尚修身连衣裙,展现优雅女性魅力
    时尚修身连衣裙,展现优雅女性魅力
    2023-12-06
    时尚修身连衣裙,展现优雅女性魅力.时尚修身连衣裙一直是女性衣橱里的必备单品,不仅款式多样,而且能够展现出女性的优雅魅力。
  • 保暖舒适羊毛大衣
    保暖舒适羊毛大衣
    2024-01-05
    保暖舒适羊毛大衣.冬季来临,寒冷的天气让人们更加注重保暖。在这个时候,一件保暖舒适的羊毛大衣成为了许多人的首选。羊毛大衣
  • 萌娃配饰套装,包包、帽子、围巾等,增添宝宝的时尚气息
    萌娃配饰套装,包包、帽子、围巾等
    2024-01-20
    萌娃配饰套装,为宝宝增添时尚气息.宝宝是家庭的小太阳,****们都希望给他们最好的一切。随着时尚的发展,宝宝的时尚潮流也
  • 轻盈雪纺衬衫,打造清新淑女形象
    轻盈雪纺衬衫,打造清新淑女形象
    2023-12-31
    轻盈雪纺衬衫,打造清新淑女形象.雪纺材质的衬衫一直以来都是清新淑女形象的代表,它轻盈飘逸的质地,柔软透气的触感,让人仿佛