【案例】redis-server 大量key过期不释放空间的
2019-08-30 22:12
941 查看
环境: 某个redis集群(redis4.0.11的主从环境)
背景:这个redis集群开发有大量的key的写入和过期,导致内存急剧上涨。
使用 rdb工具 (git地址:https://github.com/sripathikrishnan/redis-rdb-tools) 分析下rdb文件后,发现内存中有很多的key,过期时间早到了,但是实际上还存在。原因: 因为redis的key清理策略是懒惰删除(lazy free),我们可以尝试调大,这样每秒钟执行的redis的内部cronjob次数将增大,也就可以加快key的淘汰。
操作步骤:
1、config get hz 看到当前redis-server 默认值是10
2、config set hz 50 我们这里将hz设置为50,然后观察段时间看看(注意hz的设置值可以以10为步长逐步增加,但是一般不要超过100)
下面 2张图,是我从监控上截取的。可以看到 设置后迅速有大量的key被淘汰了。
相关文章推荐
- 设置Redis的key的过期时间
- 如何解决Redis中的key过期问题
- Redis 小白指南(三)- 事务、过期、消息通知、管道和优化内存空间
- Redis中删除过期Key的三种策略
- undo 表空间使用案例分析(使用率100%,enq:US-contention,释放undo)
- Redis中删除过期Key的三种策略
- Redis基础知识之————空间换时间的查询案例
- redis key 过期时间如何设置
- python中redis查看剩余过期时间以及用正则通配符批量删除key的方法
- Redis键值(Key-Value)设计案例
- 虚拟机安装redis 以及 redis五种数据类型 key命令(过期时间) redis持久化方案 教科书笔记
- Redis设置Key的过期时间 – EXPIRE命令
- 分区truncate操作的介绍及对全局索引和空间释放影响的案例解析
- Python操作Redis之设置key的过期时间
- 使用RedisTemplate键出现乱码(Can not load key value.Key was removed or redis-server went away.)
- redis处理过期key机制
- 7个高级技巧帮助你释放大量Mac OS X硬盘空间
- POSIX线程专有数据的空间释放问题,pthread_key_create……(
- Redis中删除过期Key的三种策略
- 临时表游标未释放导致回滚段空间不足案例[转]