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

Redis的key淘汰方式和内存不足淘汰方式

Redis的key过期淘汰方式

  • Redis key过期策略

    • 定期删除+惰性删除
  • Redis如何淘汰过期的key

    • 定期删除
      • 隔一段时间,就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除
      • 定期删除可能会导致很多过期key到了时间并没有被删除掉,所以需要惰性删除
    • 惰性删除
      • 概念:当一些客户端尝试访问它时,key会被发现并主动的过期
      • 放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话就删除该键
  • Redis服务器实际使用的是惰性删除和定期删除两种策略:通过配合使用这两种删除策略,服务器可以很好的在合理使用CPU时间和避免浪费内存空间之间取得平衡

Redis的内存不足淘汰方式

  • 背景
    • Redis在占用的内存超过指定的maxmemory之后,通过maxmemory-policy确定Redis是否释放内存以及如何释放内存
    • 提供多种策略
  • 策略
    • volatile-lru:(Least Recently Used)最近最少使用算法,从设置了过期时间的键中选择空转时间最长的键值对清除掉
    • volatile-lfu:(Least Frequently Used)最近最不经常使用算法,从设置了过期时间的键中选择某段时间之内使用频次最小的键值对清除掉
    • volatile-ttl:从设置了过期时间的键中选择过期时间最早的键值对清除(删除即将过期的)
    • volatile-random:从设置了过期时间的键中,随机选择键进行清除
    • allkeys-lru:(Least Recently Used)最近最少使用算法,从所有的键中选择空转时间最长的键值对清除掉
    • allkeys-lfu:(Least Frequently Used)最近最不经常使用算法,从所有的键中选择某段时间之内使用频次最小的键值对清除掉
    • allkeys-random:从所有的键中,随机选择键进行清除
    • noeviction :不做任何的清理工作,在Redis的内存超过限制之后,所有的写入操作都会返回错误,但是读操作都能正常的进行
http://www.lryc.cn/news/278707.html

相关文章:

  • java使用redis
  • MySQL技能树
  • redis获取过期时间
  • ERROR in Plugin “react“ was conflicted .... 天坑留念-turborepo、eslint plugin
  • MergeTwoSortedLists 【合并有序链表】
  • 基于多反应堆的高并发服务器【C/C++/Reactor】(中)HttpRequest模块 解析http请求协议
  • muduo网络库剖析——网络地址InetAddress类
  • 什么是本地IP?服务器本地IP有哪些优势?
  • Open CASCADE学习|参数化球面的奇异性
  • 基础知识篇(一)Acticity生命周期
  • Java内存结构
  • Java--ListUtil工具类,实现将一个大列表,拆分成指定长度的子列表
  • SpringSecurity 密码加密登录
  • 大模型实战作业03
  • 【AI视野·今日Sound 声学论文速览 第四十四期】Tue, 9 Jan 2024
  • Windows Copilot 更新及使用教程
  • 【Android开发】不同Activity之间的数据回传实例(一)摘桃子游戏
  • 增量式PID和脉冲轴组合控制阀门开度(算法介绍)
  • 解决Vue.js Devtools未检测到Vue实例的问题
  • 【Java基础】进程与线程,并发与并行,CPU单核与多核
  • git修改最新提交(commit)信息
  • 想寻找Axure的替代品?我们已经试用了10+款设计工具,来看看吧!
  • 报文大小限制、请求体类型总结
  • rknn加载onnx时报错 GLIBC=2.29 no found librknnc.so
  • ASP .net core微服务实战(杨中科)
  • 使用命令行方式搭建uni-app + Vue3 + Typescript + Pinia + Vite + Tailwind CSS + uv-ui开发脚手架
  • VUE+bpmn.js实现工作流
  • 微信小程序Burp抓包
  • 基础篇_面向对象(什么是对象,对象演化,继承,多态,封装,接口,Service,核心类库,异常处理)
  • 【一、测试基础】Java基础语法