文章目录

  • 删除策略和内存淘汰机制
    • 1 删除策略
      • 1.1 定时删除
      • 1.2 惰性删除
      • 1.3 定期删除
    • 2 内存淘汰机制

删除策略和内存淘汰机制

1 删除策略

Redis是一个内存级数据库,内存中的数据通过TTL指令获取其状态

  • XX:具有时效性的数据
  • -1:永久有效的数据
  • -2:已经过期的数据

过期数据:已经达到了有效期的数据,expires中存储了每个地址上数据的有效时间

注意事项

  • Redis服务器实际使用的是惰性删除策略和定期删除策略
  • 执行save命令或者bgsave命令所产生的RDB文件不会包含已经过期的键
  • 执行bgrewriteaof命令重写aof文件不会包含已经过期的键
  • 当一个键被删除之后,服务器会追加一条del命令到现有aof文件末尾
  • 主服务器删除一个过期键之后,会向从服务器发送del命令
  • 从服务器即使发现键过期也不会删除它,而是等待主服务器发来del命令

1.1 定时删除

创建一个定时器,当key设置有过期时间,且过期时间到达时,定时器立即执行删除操作

优点:节约内存,到时就删除

缺点:CPU压力大

1.2 惰性删除

数据到达过期时间,不做处理,下次访问数据时删除,并返回不存在

优点:节约CPU性能

缺点:内存压力大

1.3 定期删除

定期轮询数据库,随机选择若干个key检测,如果当前key超时则删除,当前轮次中删除的key数量大于随机选择个数的25%则循环该过程

总结:随机抽查,重点抽查

2 内存淘汰机制

删除策略是针对有到期时间的数据的清除

内存淘汰机制(逐出算法):如果加入新数据的时候,内存不满足最低要求,redis要临时删除一些数据

逐出数据的过程不是一定能清理出足够的空间,不成功则反复执行,如果始终不能达到要求,则报错

  • 检查易失数据(可能会过期的数据集server.db[i].expires)

    • LRU:淘汰最久未使用的数据
    • LFU:淘汰最少使用的数据
    • TTL:淘汰将要过期的数据
    • random:任意选择数据淘汰
  • 检测全库数据(所有数据集server.db[i].dict)
    • LRU:淘汰最久未使用的数据
    • LFU:淘汰最少使用的数据
    • random:任意选择数据淘汰
  • 放弃数据驱逐
    • no-enviction(驱逐):禁止驱逐数据,会引发错误OOM

Redis基础(五)——删除策略和内存淘汰机制相关推荐

  1. Redis 过期键删除策略、内存淘汰机制

    文章目录 过期键删除策略 定时删除 惰性删除 定期删除 Redis的选择 内存淘汰机制 redis中缓存的数据是有过期时间的,当缓存数据失效时,redis会删除过期数据以节省内存,那redis是怎样怎 ...

  2. stringredistemplate设置过期时间_Redis的过期删除策略和内存淘汰机制

    Redis的key可以设置过期时间,那是否意味着时间一到就会马上被删除呢? Redis的数据存储大小是有限的,假如内存不足Redis有什么应对策略呢? 本篇文章将介绍一下Redis的过期策略和内存淘汰 ...

  3. Redis的过期键删除策略和内存淘汰机制

    一.过期键的判定 通过过期字典,程序可以用以下步骤检查一个给定键的过期时间: (1)检查给定键是否存在于过期字典:如果存在就取出来过期时间: (2)检查当前的UNIX时间戳是否大于键的过期时间,如果是 ...

  4. redis详解- 过期删除策略和内存淘汰策略

    设置redis键过期时间 Redis提供了四个命令来设置过期时间(生存时间). ①.EXPIRE <key> <ttl> :表示将键 key 的生存时间设置为 ttl 秒. ② ...

  5. redistemplate.opsforhash设置过期时间_Redis详解(十一)------ 过期删除策略和内存淘汰策略...

    大家好,我是可乐,一个专注原创,乐于分享的程序猿. 本系列教程持续更新,可以微信搜索「 IT可乐 」第一时间阅读.回复<电子书>有我为大家特别筛选的海量免费书籍资料 在介绍这篇文章之前,我 ...

  6. Redis的过期策略以及内存淘汰机制

    Redis的过期策略以及内存淘汰机制 我们知道,redis中缓存的数据是有过期时间的,当缓存数据失效时,redis会删除过期数据以节省内存,那redis是怎样删除过期数据的?删除过期数据的策略是什么? ...

  7. Redis过期策略与内存淘汰机制

    参考博客:https://blog.csdn.net/u010006156/article/details/124914082 Redis过期策略与内存淘汰机制 过期策略简介 作用 redis数据都是 ...

  8. java 过期策略实现_Redis过期策略和内存淘汰机制

    Redis缓存作为提高系统性能最好的方式相信大家对其一定不陌生,各位作为秃头老码农不仅需要掌握Redis的基础用法还得了解Redis的相关原理,比如Redis过期策略和内存淘汰机制. 大家都知道,Re ...

  9. Redis过期删除策略和内存淘汰策略

    目录 一.过期删除策略 1.如何设置过期时间? 2.如何判定 key 已过期了? 3.过期删除策略有哪些? 1.定时删除策略 2.惰性删除策略 3.定期删除策略 4.Redis 过期删除策略 5.Re ...

最新文章

  1. 二十岁出头的时候上,你一无所有,你拥有一切
  2. Svchost.exe病毒
  3. python server酱_面向回家编程!GitHub标星两万的quot;Python抢票神器”快用起来!...
  4. python使用笔记:xlrd和xlwt库的使用
  5. 使用Oracle Data Integrator(和Kafka / MapR流)完善Lambda体系结构
  6. 使用Jolokia和JMX进行客户端服务器监视
  7. OpenCV图像识别初探-50行代码教机器玩2D游戏
  8. Echarts Map地图下钻至县级
  9. 拼多多数据分析工具有哪些?拼多多数据分析工具介绍
  10. UWCN开源的Pay企业级开源聚合支付系统
  11. 网易云音乐虚化图片html,CSS之高斯模糊—(网易云歌单)
  12. 不要为明天忧虑(10.14)
  13. 2015款Mac笔记本安装Windows10系统到外置移动硬盘教程
  14. 企业搭建APP怎么正确选择云服务器配置?
  15. 虚拟机安装Ubuntu22.04 以及个人相关配置记录
  16. 如何实现限制上传或下载速度
  17. 中国论坛排行榜,热门论坛网站排行榜,热门论坛网站排行榜[转]
  18. 实验三 端口扫描实验
  19. 快速查看电脑详细配置
  20. android 扫码枪编程,Android扫描枪(PDA)开发

热门文章

  1. ubuntu16.04中IDEA无法输入中文问题
  2. C#中配置文件保存的路径
  3. Android---- android计量单位--dip、px、sp之间区别与联系pixs =dips * (densityDpi/160). dips=(pixs*160)/d...
  4. 【递归】n个数的全排列
  5. 前天做了一个点击随机改变背景色的JS,请各位老师指导下:
  6. luogu P3178 [HAOI2015]树上操作
  7. 常用Linux命令:
  8. Python学习之==常用模块
  9. Linux -- 基于zookeeper的java api(二)
  10. angular2 图表指令ng2-echarts