redis内存淘汰策略

1. redis内存淘汰策略

复制代码
日常常用:allkeys-lru:在键空间中移除最近最少使用的key。

1.1 为什么需要使用redis内存淘汰策略?

复制代码
因为我们服务器中的内存是有限的,不会无限多,所以需要对一些不常用的key进行内存清理.

1.2 redis内存淘汰策略有哪些?

复制代码
redis默认淘汰策略noeviction,不淘汰任何数据,内存满了会报错.

-noeviction:不进行任何数据淘汰,当内存不足时,对写命令返回错误。
-allkeys-lru:在键空间中移除最近最少使用的key(Least Recently Used),适用于所有key。
-volatile-lru:在设置了过期时间的key中移除最近最少使用的key。
-allkeys-random:随机移除所有key中的一个。
-volatile-random:随机移除设置了过期时间的key中的一个。
-volatile-ttl:移除即将到期的key中最早到期的一个。
-volatile-lfu:在设置了过期时间的key中移除最不经常使用(Least Frequently Used)的一个。
-allkeys-lfu:在键空间中移除最不经常使用的key。

1.3 LRU和LFU的区别?

LRU:Least Recently Used,最近最少使用,用当前访问时间减去最后一次访问时间,这个值越大则淘汰优先级最高。

LFU:Least Frequently Used,最少频率使用,会统计每个key的访问频率,值越小淘汰优先级越高。

2. 一些常用例子

2.1 假如数据库中有1000w条数据,但是内存只需要保存20w条数据,该选择那种淘汰策略保存都是热点数据?

复制代码
-allkeys-lru:在键空间中移除最近最少使用的key(Least Recently Used),适用于所有key。留下来的都是热点数据。

2.2 redis内存用完了会怎么样?

复制代码
redis默认淘汰策略noeviction,不淘汰任何数据,内存满了会报错.
相关推荐
SelectDB1 分钟前
ES 写入拒绝与磁盘暴涨:排查命令、参数调整与改用 Doris 的落地步骤
大数据·数据库·数据分析
此时不提桶,更待何时18 分钟前
05-04-B-HBase与时序库面试与生产事故实战
数据库·面试·hbase
Shadow(⊙o⊙)1 小时前
表的增删查改
数据库·mysql
程序猿乐锅1 小时前
【黑马点评 | 第九篇】秒杀优化-异步实现
java·spring boot·redis·后端·spring·中间件·mybatis
+VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue外卖点餐系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
盟接之桥2 小时前
线束数字化--先进先出为什么总是停留在纸面上?
大数据·网络·数据库·人工智能·制造·ai编程
adinnet20264 小时前
预算管控:预算执行与偏差问数
大数据·数据库
旋生万物5 小时前
Redis 缓存雪崩?不是 TTL 一样,是过期相位同步塌陷(附打散脚本)
redis·缓存·aigc·螺旋生成论·螺旋相位
Omics Pro5 小时前
Cell封面|衰老生物学开源AI工具包
数据库·人工智能·算法·机器学习·自然语言处理
夕除6 小时前
redis--020
redis