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

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,不淘汰任何数据,内存满了会报错.

http://www.mrgr.cn/news/8788.html

相关文章:

  • Go 语言开发工具
  • buuctf [MRCTF2020]Xor
  • M8020A J-BERT 高性能比特误码率测试仪
  • 算法笔记|Day34动态规划VII
  • [星瞳科技]OpenMV是否属于单片机?
  • OpenCL 的执行模型
  • openGuass——一般元命令
  • Open3D 点云曲率计算与可视化显示(39)
  • 【解析几何笔记】8.向量的投影与内积
  • c++ 继承
  • Chrome 渲染器中的对象转换到 RCE
  • Springboot 定时任务cron表达式
  • GoWeb 设置别名和多环境配置
  • 动手学深度学习(pytorch)学习记录15-正则化、权重衰减[学习记录]
  • Flat Ads:全球金融应用现状与发展趋势深度解析
  • RocketMQ 与 Spring Cloud Stream之事务消息配置
  • 【Vue】计算属性和监听属性
  • springdatajpa解决postgresql数据库字段驼峰命名问题
  • C++系列-多态的基本语法
  • repo的patch转换成git am能打的patch