在Redis中根据时间获取所有密钥

时间:2013-08-15 14:38:33

标签: python redis

如何根据Redis中的时间或基于字典中的时间顺序键获得密钥列表,即:

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

我的每个Redis条目中都有"time"个密钥。如何获取基于该时间排序的列表,或者更好的是创建密钥的时间?

2 个答案:

答案 0 :(得分:1)

Redis是一个密钥库,并不打算在您尝试时进行操作。 'time'键与redis无关,因为这只是一个存储在Redis字符串中的JSON字符串(如果我理解正确的话)。基本上,Redis并不关心字符串中的内容,如果确实如此,它也可能是一个完整的SQL DB。

如果您必须使用时间,则可以在密钥名称中包含该时间。例如,您希望在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可能更适合您的意图。

答案 1 :(得分:0)

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