redis缓存过期key优化-缓存不释放

redis缓存过期key优化

背景

redis集群大量key写入和大量key过期,运行一段时间,内存告急,并发出告警。

原因

  • 为啥设置了expire过期key,内存没有释放
    • key设置过期时间了,ttl为0后并不会自行删除该key,而是等到下次访问该key发现已过期,才会删除。
    • 命令keys "*" 会瞬间释放所有过期key,但是有风险。慎行。
    • 其实缓存是在释放的,只不过是没有那么快,释放的快慢取决于redis.conf中的hz参数默认为5,意思是每秒执行5次删除过期key。所以在redis过期较多的场景可以适当调大。并观察cpu是否升高。

解决方法

  • 过期key删除频率 观察cpu 内存
    • config set hz 20
posted @ 2018-07-05 07:57  石Stone头  阅读(2384)  评论(0编辑  收藏  举报