如何根据Redis中的时间或基于字典中的时间顺序键获得密钥列表,即:
get foo
{"time":'Thu Aug 15 22:37:37 2013', "data":"etc"}
我的每个Redis条目中都有"time"
个密钥。如何获取基于该时间排序的列表,或者更好的是创建密钥的时间?
答案 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,主体是相同的: