背景
在做一些项目的过程中,有些项目对于后端数据的接口请求时间要求更高,数据存储读取较频繁,一般的mysql数据库不能支持这种需求,所以对于这类项目,一般采用内存型数据库存储-redis。
而对于redis,它相比于mysql资源成本是更高的,因此redis适合存储一些重要或者紧要的数据。
在这类项目运行久了之后,一些老的key会不断在redis里积压,导致redis内存越来越高,对redis的使用效率产生影响,因此需要对于redis数据进行定期清理。
这个项目是对于redis中的key进行筛选,查找到轮转时间(长期没有使用的时间)大于某个阈值的key,并将它做一些清理落地处理。
项目地址
命令科普
- 死键
所谓死键,在redis里有两个定义。- 死键是指redis中的key超过过期时间,但是没有在内存中被实际删除的key。
PS: 这种情况是可能发生的,在redis中过期键的删除有两种策略,一般采用的是定期删除(比如每s删除10个),这样的话,如果我们过期键产生的速度是大于删除的速度,则会产生死键。 - 死键是指在redis中长期未被访问的key(需要根据业务需求,查看能否删除)
- 死键是指redis中的key超过过期时间,但是没有在内存中被实际删除的key。
- 轮转时间
轮转时间即idletime,是指该key有多长时间没有被访问过(单位 s)。
OBJECT IDLETIME KEY