当前位置: 首页 > news >正文

Java学习Day29

今天继续了解一下Redis的缓存淘汰策略
Redis 的缓存淘汰策略是当内存使用达到maxmemory限制时,为新数据腾出空间而采取的处理机制。理解这些策略对优化缓存命中率、减少数据库压力至关重要。以下是详细解释:
一、淘汰策略的分类
Redis 的淘汰策略可按是否筛选过期键和具体淘汰规则分为两大类,共 8 种策略(Redis 6.0+):

  1. 仅淘汰设置了过期时间的键(volatile-*)
    volatile-lru:从已设置过期时间的键中,淘汰最近最少使用(Least Recently Used) 的键。
    示例:缓存中存在 1 小时前访问的商品 A(过期时间 2 小时)和 10 分钟前访问的商品 B(过期时间 2 小时),新增数据时优先淘汰商品 A。
    volatile-lfu:从已设置过期时间的键中,淘汰最近最少频率使用(Least Frequently Used) 的键(基于访问次数统计)。
    示例:商品 C 每天被访问 10 次,商品 D 每天被访问 2 次,优先淘汰商品 D。
    volatile-ttl:从已设置过期时间的键中,淘汰剩余过期时间最短(Time To Live) 的键。
    示例:商品 E 剩余 10 分钟过期,商品 F 剩余 1 小时过期,优先淘汰商品 E。
    volatile-random:从已设置过期时间的键中,随机淘汰一个键。
  2. 淘汰所有键(包括未设置过期时间的键,allkeys-*)
    allkeys-lru:从所有键(无论是否设置过期时间)中,淘汰最近最少使用的键。
    适用场景:缓存的键访问频率差异大(如热门商品和冷门商品)。
    allkeys-lfu:从所有键中,淘汰最近最少频率使用的键。
    适用场景:需要区分访问频率(如高频访问的活动页和低频访问的历史页)。
    allkeys-random:从所有键中,随机淘汰一个键。
    适用场景:键的访问概率接近随机(如随机推荐的临时数据)。
  3. 不淘汰键(特殊策略)
    noeviction:默认策略,当内存不足时,拒绝写入新数据,并返回错误(OOM command not allowed when used memory > 'maxmemory')。
    风险:可能导致业务写入失败,适用于不允许数据丢失的场景(需配合其他机制如内存扩容)。
    二、策略选择的核心依据
    键的过期时间设置:
    若部分键需要长期缓存(如基础配置),部分键可过期(如临时数据),优先选择volatile-策略,避免误淘汰长期缓存的键。
    若所有键都是临时缓存(如会话数据),可选择allkeys-
    策略。
    访问模式:
    访问频率有明显差异(如热门商品):用lru或lfu(lfu更适合区分 “偶尔高频” 和 “持续高频”)。
    访问随机(如随机生成的临时 ID):用random。
    需优先保留即将过期的临时数据:用volatile-ttl。
http://www.vanclimg.com/news/1751.html

相关文章:

  • 待办
  • 20250729 沪锡
  • 内核模块支持
  • 最大公约数最小公倍数与周期
  • LLM的参数量是什么意思
  • 平衡树Splay - AC
  • 7.15-7.28软路由搭建
  • 2025.7.29
  • 电脑接入麦克风设置
  • Windows平台Microsoft Edge关闭指定快捷键方法
  • 20250729
  • 零代码、零门槛、零成本:企业数字化的五个新选择
  • split函数用法
  • FCN语义分割
  • windows系统下计算文件md5值
  • 《碰撞检测》基于屏幕大小及敌人的宽高,生成抽象网格,根据网格让敌人在网格中随机生成
  • 技术文章
  • 请勿在DNS MX记录中直接使用IP地址 - 邮件服务器配置指南
  • 激活函数
  • 用回溯算法实现全排列
  • 如何在Consumption类型的容器应用环境中缓存Docker镜像
  • [AlpaGasus] AlpaGasus: Training A Better Alpaca with Fewer Data | ICLR 2024
  • DNS 记录类型详解
  • 使用Docker部署前端应用
  • python基础篇(1)
  • P1956 Sum 题解
  • 洛谷P8742 [蓝桥杯 2021 省 AB] 砝码称重 题解
  • 拼接文件路径
  • 踩坑:Mybatis Plus 逻辑删除 @TableLogic
  • UE简单激活教程V24.00.0.72