我的问题是:我有一组值,每个值都必须有一个到期值.码:
set a:11111:22222 someValue
expire a:11111:22222 604800 \\usually equal a week
Run Code Online (Sandbox Code Playgroud)
在一个完美的世界中,我会将所有这些值放在一个哈希值中,并为每个值提供适当的过期值,但redis不允许在哈希字段上过期.
问题是,我还有一个过程,需要每小时一次获取所有这些密钥
keys a:*
Run Code Online (Sandbox Code Playgroud)
这个命令非常昂贵,根据redis文档可能会导致性能问题.每个给定时刻我有大约25000-30000个键.
有人知道我怎么能解决这样的问题?竖起大拇指保证( - ;
罗伊
让我提出一个替代解决方案.
而不是要求Redis扫描所有密钥,为什么不执行后台转储,并解析转储以提取密钥?这样,对Redis实例本身没有任何影响.
解析转储文件并不像听起来那么可怕,因为您可以使用优秀的redis-rdb-tools包:
https://github.com/sripathikrishnan/redis-rdb-tools
您可以将转储文件转换为json文件,然后解析json文件,或者使用Python API自行提取密钥.
| 归档时间: |
|
| 查看次数: |
9208 次 |
| 最近记录: |