在Redis中按时间获取所有密钥

2024-04-24 12:07:07 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在Redis中获取基于时间的键列表,或基于字典中按时间顺序排列的键的列表,即:

get foo
{"time":'Thu Aug 15 22:37:37 2013', "data":"etc"}

我在每个Redis条目中都有"time"键。如何获取一个基于这个时间排序的列表,或者更好地说,创建键的时间?在


Tags: redis列表dataget字典footime排序
2条回答

Redis是一个keystore,并不是要像您所尝试的那样进行操作。“time”键与redis无关,因为这只是一个存储在redis字符串中的JSON字符串(如果我理解正确的话)。基本上,Redis不关心字符串中的内容,如果有,它也可能是一个完整的sqldb。在

如果您确实需要使用时间,那么可以在密钥名称中包含时间。例如,您希望在8月份获得所有密钥:

redis 127.0.0.1:6379> MSET foo_20130815223737 "{\"time\":'Thu Aug 15 22:37:37 2013', \"data\":\"etc\"}"  foo_20130816123015 "{\"time\":'Thu Aug 16 12:30:15 2013', \"data\":\"etc\"}"
OK
redis 127.0.0.1:6379> KEYS foo_201308*
1) "foo_20130815223737"
2) "foo_20130816123015"

如果你描述一下你为什么要这么做,我可能会有更好的选择。例如,使用Redis作为消息队列的Pub/Sub可能更符合您的意图。在

使用排序集:我给出了类似的答案here,原则是相同的:

相关问题 更多 >