Redis运维和开发学习笔记(7) 内存管理和过期策略

文章目录

  • Redis运维和开发学习笔记(7) 内存管理和过期策略
    • 内存回收策略
      • 惰性删除
      • 定时任务删除
    • maxmemory
    • 过期策略allkeys-lru主从搭建测试
      • 搭建完毕主从
    • 测试结果
      • volatile-lru测试结果
      • volatile-ttl测试结果
      • allkeys-lru

内存回收策略

惰性删除

惰性删除用于当客户端读取带有超时属性的键时,如果已经超过键设置的过期时间,会执行删除操作并返回空。不需要维护TTL链处理过期键的删除。如果有一个键从来没有被访问,那就有问题了。就需要定时任务删除

定时任务删除

默认每10秒执行一次,通过配置hz控制。定时任务中采用自适应算法。根据键的过期比例,使用快慢两种速率回收

maxmemory

内存达到maxmemory限制时触发内存溢出控制策略maxmemory-policy:六种策略

noeviction 默认不删除,拒绝所有写操作
volatile-lru 根据LRU算法删除设置了超时属性
allkeys-lru 根据lru算法删除键,不管数据有没有设置超时属性
volatile-random 随机删除过期键,知道腾出足够空间
volatile-ttl 根据键值对象的ttl属性,删除最近将要过期的数据,如果没有回退到noeviction
allkeys-random 随机删除所有键,直到有足够空闲空间

过期策略allkeys-lru主从搭建测试

搭建完毕主从

开辟2M空间,往里面写数据。1024条

  1. 使用脚本写入数据
for ((i=1;i<1024;i++))
doecho -en "helloworld1" | redis-cli -c -p 7010 -x set name$i
done
  1. 把数据输出
    共写入了108条数据这个时候我们再set数据查看变化

测试结果

volatile-lru测试结果

volatile-ttl测试结果

allkeys-lru

Redis运维和开发学习笔记(7) 内存管理和过期策略相关推荐

  1. Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令

    Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令 文章目录 Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令 info server info clie ...

  2. Redis运维和开发学习笔记(5) 主从复制和sentinel哨兵模式

    Redis运维和开发学习笔记(5) 主从复制和sentinel哨兵模式 主从复制 将主节点的数据改变同步给从节点 作用 备份数据 读写分离 存在的问题: 手动干预切主等操作 主节点的写能力受到单机限制 ...

  3. Redis运维和开发学习笔记(4) Redis参数意义

    Redis运维和开发学习笔记(4) Redis参数意义 文章目录 Redis运维和开发学习笔记(4) Redis参数意义 参数意义 参数意义 Client连接 问题 id=567800790 addr ...

  4. Redis运维和开发学习笔记(2) redis持久化

    Redis运维和开发学习笔记(2) redis持久化 文章目录 Redis运维和开发学习笔记(2) redis持久化 持久化 持久化方式一:RDB 触发~~的三种~~方式 1. save命令 2. b ...

  5. Redis运维和开发学习笔记-全书思维导图

    Redis运维和开发学习笔记-全书思维导图 图片过大,无法上传. 链接:https://pan.baidu.com/s/13pnEMBEdLgjZNOOEAuDvEQ 密码:qhch

  6. Redis运维和开发学习笔记(3)redis搭建集群

    Redis运维和开发学习笔记(3)redis搭建集群 文章目录 Redis运维和开发学习笔记(3)redis搭建集群 Redis集群搭建 Redis集群搭建 cp /etc/redis.d/redis ...

  7. Redis运维和开发学习笔记(1) Redis简介

    文章目录 Redis的特性 速度快 持久化 多种数据结构 主从复制 高可用和分布式 典型的应用场景 Redis启动和可执行文件 Redis可执行文件说明 启动方式 验证redis redis常用配置 ...

  8. Redis运维和开发学习目录

    Redis运维和开发学习笔记-全书思维导图 Redis运维和开发学习笔记(1) Redis简介 Redis运维和开发学习笔记(2) redis持久化 Redis运维和开发学习笔记(3)redis搭建集 ...

  9. Redis学习笔记(四):过期策略、持久化、事件

    图片来自<Redis设计与实现> Redis数据库 redis.server中redisServer.dbnum用于初始化生成多少个数据库,默认16个,Select命令选择数据库 redi ...

最新文章

  1. computed set 自定义参数_完全理解Vue的渲染watcher、computed和user watcher
  2. include/caffe/common.cuh(9): error: function atomicAdd(double *, double) has already been defined
  3. 享元设计模式coding
  4. navicat设置数据表的外键
  5. python字典的值可以是字典吗_python字典的值可以是字典吗
  6. [技术回顾系列]--认识WebService全貌
  7. 05:年龄与疾病【一维数组】
  8. C++ string类常用函数
  9. c语言中有关逗号表达式
  10. Atitit git 使用法v2 目录 1. Git客户端工具 1 1.1. Tortoisegit git gui 图形化工具。。 1 1.2. Ide中的git插件(eclipse idea
  11. 推荐一款鼠标手势的软件,开源且免费
  12. java金额小数位,java 数字转大写金额,小数部分太简单略
  13. 分析全基因组上的蛋白信息
  14. 回顾2022! 链上NFT精彩项目大盘点
  15. easyexcel复杂表格---包含单元格合并,表格标题,以及自定义字段写入
  16. 陀螺产业区块链案例库 | 终本案件智能管理系统
  17. 高一计算机专业班主任工作总结,【班主任工作总结报告计算机材料】
  18. ES6中Set方法实现数组去重
  19. IIS Nginx Apache Tomcat 中间件漏洞
  20. JavaScript原生读取json文件

热门文章

  1. type=file文件上传H5新特性
  2. 每日一题题目16:简单的python练习题(1-10)
  3. go语音实战读后感——一
  4. BZOJ1734: [Usaco2005 Feb]Aggressive cows 愤怒的牛
  5. MyBatis操作指南-与Spring集成(基于注解)
  6. 关于string转整数
  7. linux上安装memcached步骤
  8. 计算机在盲童音乐教学中的具体应用,计算机在高校中的具体应用
  9. java sql server连接字符串_关于Java:SQL Server的等效jdbc连接字符串
  10. html iframe post,使用Jquery和IFrame的跨子域请求(GET,POST,…)