您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页Redis03-过期策略和淘汰策略

Redis03-过期策略和淘汰策略

来源:意榕旅游网


Redis数据过期策略

Redis使用一种基于过期策略来处理键的过期和自动失效。这种策略可以确保不再需要的数据被自动删除,以释放内存并避免数据过期后仍然在缓存中存留。

Redis的过期删除策略主要有两种:

Redis数据淘汰策略

Redis支持多种数据淘汰策略,用于管理内存中的数据,以便在内存不足时删除部分数据。

LRU(Least Recently Used,最近最少使用):当内存不足时,Redis会优先删除最久未被访问的键。

LFU(Least Frequently Used,最不经常使用):Redis会在内存不足时删除访问频率最低的键。

TTL(Time To Live,生存时间):当键的生存时间过期时,Redis会自动删除该键。

以下是Redis中常见的8种数据淘汰策略:

# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
# is reached. You can select one from the following behaviors:
#
# volatile-lru -> Evict using approximated LRU, only keys with an expire set.
# allkeys-lru -> Evict any key using approximated LRU.
# volatile-lfu -> Evict using approximated LFU, only keys with an expire set.
# allkeys-lfu -> Evict any key using approximated LFU.
# volatile-random -> Remove a random key having an expire set.
# allkeys-random -> Remove a random key, any key.
# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
# noeviction -> Don't evict anything, just return an error on write operations.
  1. noeviction:不淘汰任何key,当内存满时不允许写入新数据。这是默认策略。(内存不足会报错的)

  2. volatile-ttl:对设置了TTL的key,计算剩余TTL值,越小的先被淘汰。

  3. volatile-lru:对设置了TTL的key,基于LRU算法进行淘汰。

  4. allkeys-lru:对所有的key,基于LRU算法进行淘汰。

  5. volatile-lfu:对设置了TTL的key,基于LFU算法进行淘汰。

  6. allkeys-lfu:对所有的key,基于LFU算法进行淘汰。

  7. volatile-random:对设置了TTL的key,随机淘汰。

  8. allkeys-random:对所有的key,随机淘汰。

使用建议:

  • 业务对缓存的数据有冷热数据区分的时候,建议使用allkeys-lru删除最久未被访问的key的策略。

  • 业务没有冷热数据区分,使用allkeys-random就行。

  • 业务中有置顶要求,可以设置volatile-lru,对置顶数据不设过期时间,这些数据就会一直保留。

  • 业务中有频率要求,可以使用volatile-lfu或者allkeys-lfu策略。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务