Redis 的缓存淘汰策略

Redis 作为一个高性能的内存数据库,提供了多种缓存淘汰策略(也称为过期策略或驱逐策略),用于管理内存使用。当 Redis 达到其内存限制时,系统会根据配置的策略删除一些数据,以释放内存空间。以下是 Redis 支持的几种主要缓存淘汰策略:

  1. noeviction: 当内存不足以容纳新写入数据时,新写入操作会报错。这种策略适用于不能丢失任何数据的场景。

  2. allkeys-lru: 从所有键中选择最近最少使用(Least Recently Used, LRU)的键进行淘汰。这是一个常用的策略,适用于大多数缓存场景。

  3. volatile-lru: 从设置了过期时间的键中选择最近最少使用(Least Recently Used, LRU)的键进行淘汰。适用于只淘汰那些有过期时间的键。

  4. allkeys-random: 从所有键中随机选择键进行淘汰。适用于对键的使用频率没有特别要求的场景。

  5. volatile-random: 从设置了过期时间的键中随机选择键进行淘汰。适用于只淘汰那些有过期时间的键,且不关心键的使用频率。

  6. volatile-ttl: 从设置了过期时间的键中选择存活时间最短(Time to Live, TTL)的键进行淘汰。优先淘汰即将过期的键。

  7. allkeys-lfu: 从所有键中选择最少使用频率(Least Frequently Used, LFU)的键进行淘汰。这种策略适用于那些有些键被频繁访问,而有些键很少被访问的场景。

  8. volatile-lfu: 从设置了过期时间的键中选择最少使用频率(Least Frequently Used, LFU)的键进行淘汰。适用于只淘汰那些有过期时间的键,且有些键被频繁访问,而有些键很少被访问的场景。

这些策略可以通过 Redis 配置文件或运行时命令进行设置。例如,可以在 Redis 配置文件(redis.conf)中设置:

conf 复制代码
maxmemory-policy allkeys-lru

或者通过运行时命令进行设置:

shell 复制代码
CONFIG SET maxmemory-policy allkeys-lru

选择合适的淘汰策略可以根据具体应用场景的需求,数据访问模式和内存使用情况来决定。

相关推荐
谷哥的小弟7 小时前
腾讯云服务器安装Redis Stack图文教程
服务器·redis·腾讯云·redis stack
NeilYuen7 小时前
【vemory】高性能KV存储AOF方案设计
linux·c++·redis·缓存
spter。9 小时前
Redis 与 Single-flight 的分工与协作
数据库·redis·缓存
小林ixn11 小时前
用 Next.js 和 Redis 撸一个 Markdown 笔记系统:RSC 实战与组件化拆解
前端·redis·next.js
北漂燕郊杨哥13 小时前
Win11 环境下 phpStudy 安装 Redis 最新版,并为 PHP 8.5.9(NTS)配置 redis 扩展
数据库·redis·php
天疆说1 天前
01 硬件选型与 llama.cpp 部署:4× RTX 5880 Ada 跑 DeepSeek-V4-Flash
java·redis·llama
嘟嘟07171 天前
Next.js 博客左侧笔记列表是怎么从 Redis 渲染出来的?从组件、children 到动态路由一次讲清
redis·react.js·前端工程化
Rain的Java大神之路1 天前
线上接口负载满了如何解决
java·数据库·redis·后端·缓存·面试·架构
Amir_zy1 天前
Redis测试方法全攻略:冒烟、压测与稳定性验证
redis·压力测试
霸道流氓气质1 天前
RedLock:Redis 分布式锁的高可用方案
数据库·redis·分布式