【redis】redis内存管理,过期策略与淘汰策略

打印 上一主题 下一主题

主题 1063|帖子 1063|积分 3189

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一:Redis 的过期删除策略及处置处罚流程如下:

1. 过期删除策略

Redis 通过以下两种策略删除过期键:
1.1 惰性删除



  • 触发时机:当客户端访问某个键时,Redis 会检查该键是否过期。
  • 执行流程

    • 客户端哀求访问键。
    • Redis 检查键的过期时间。
    • 如果键已过期,Redis 删除该键并返回空;如果未过期,返回键值。

1.2 定期删除



  • 触发时机:Redis 定期随机抽取部分键检查是否过期。
  • 执行流程

    • Redis 从设置了过期时间的键中随机抽取一部分。
    • 检查这些键是否过期。
    • 删除已过期的键。
    • 如果过期键比例超过一定阈值,重复该过程。

2. 处置处罚流程

Redis 处置处罚过期键的流程联合了惰性删除和定期删除:

  • 客户端访问

    • 客户端哀求访问键时,Redis 先检查键是否过期,若过期则删除并返回空。

  • 定期检查

    • Redis 定期随机抽取部分键检查过期情况,删除已过期的键。
    • 如果过期键比例较高,继续检查更多键。

  • 内存回收

    • 通过惰性删除和定期删除,Redis 逐步回收过期键占用的内存。

3. 配置参数



  • hz:控订定期删除的频率,默认 10,体现每秒执行 10 次检查。
  • maxmemory-samples:设置每次检查时随机抽取的键数量,默认 5。
4. 总结



  • 惰性删除:在访问时检查并删除过期键。
  • 定期删除:定期随机检查并删除过期键。
这两种策略共同确保 Redis 高效管理内存,避免过期键占用过多资源。
在 Redis 中,缓存淘汰策略过期策略 是两种差别的机制,但它们共同作用于缓存数据的管理。以下是对 LRULFU 缓存淘汰策略的区别,以及它们与过期策略的应用场景的详细解读。

二、缓存淘汰策略:LRU 和 LFU 的区别

1. LRU(Least Recently Used,最近最少使用)



  • 原理:优先淘汰最近最少被访问的数据。
  • 实现方式:Redis 使用近似 LRU 算法,通过随机采样一部分键,从中淘汰最近最少使用的键。
  • 特点

    • 关注数据的访问时间。
    • 适合访问模式有显着热门数据的场景。

  • 适用场景

    • 热门数据缓存(如新闻、交际媒体热门内容)。
    • 需要保存最近访问数据的场景。

2. LFU(Least Frequently Used,最不常用)



  • 原理:优先淘汰访问频率最低的数据。
  • 实现方式:Redis 记载每个键的访问频率,淘汰访问次数最少的键。
  • 特点

    • 关注数据的访问频率。
    • 适合访问模式较为匀称的场景。

  • 适用场景

    • 访问频率差别较大的场景(如推荐体系、广告体系)。
    • 需要保存高频访问数据的场景。

3. LRU 和 LFU 的区别

特性LRULFU关注点数据的访问时间数据的访问频率适用场景有显着热门数据的场景访问频率差别较大的场景优点简朴高效,适合短期热门数据更精准,适合长期高频数据缺点可能误删高频但近期未访问的数据需要额外记载访问频率,开销较大
三、缓存淘汰策略与过期策略的联合应用

在实际应用中,缓存淘汰策略和过期策略通常需要联合使用,以满意差别的业务需求。
1. 热门数据缓存



  • 过期策略:为热门数据设置较长的过期时间。
  • 淘汰策略:使用 allkeys-lru,优先保存最近访问的热门数据。
  • 场景:新闻、交际媒体热门内容。
2. 暂时数据缓存



  • 过期策略:为暂时数据(如验证码、会话)设置较短的过期时间。
  • 淘汰策略:使用 volatile-ttl,优先淘汰即将过期的数据。
  • 场景:验证码、会话缓存。
3. 冷数据清理



  • 过期策略:为冷数据设置过期时间。
  • 淘汰策略:使用 volatile-lfu,优先淘汰访问频率低的冷数据。
  • 场景:历史数据、低频访问数据。
4. 不答应数据丢失的场景



  • 过期策略:不设置过期时间,或设置较长的过期时间。
  • 淘汰策略:使用 noeviction,确保数据不被淘汰。
  • 场景:金融、交易体系。

四、总结

1. LRU 和 LFU 的选择



  • 如果业务有显着的热门数据,选择 LRU
  • 如果业务需要关注数据的访问频率,选择 LFU
2. 过期策略的选择



  • 如果数据有明确的生命周期,设置 过期时间
  • 如果需要及时清理过期键,启用 定期删除
3. 联合使用



  • 根据业务特点,合理配置 缓存淘汰策略过期策略,以优化 Redis 的性能和资源使用率。
通过合理选择策略,可以有效提升 Redis 的缓存命中率和体系性能。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

尚未崩坏

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表