2024-04-24 12:07:07 发布
网友
如何在Redis中获取基于时间的键列表,或基于字典中按时间顺序排列的键的列表,即:
get foo {"time":'Thu Aug 15 22:37:37 2013', "data":"etc"}
我在每个Redis条目中都有"time"键。如何获取一个基于这个时间排序的列表,或者更好地说,创建键的时间?在
"time"
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,原则是相同的:
Redis是一个keystore,并不是要像您所尝试的那样进行操作。“time”键与redis无关,因为这只是一个存储在redis字符串中的JSON字符串(如果我理解正确的话)。基本上,Redis不关心字符串中的内容,如果有,它也可能是一个完整的sqldb。在
如果您确实需要使用时间,那么可以在密钥名称中包含时间。例如,您希望在8月份获得所有密钥:
如果你描述一下你为什么要这么做,我可能会有更好的选择。例如,使用Redis作为消息队列的Pub/Sub可能更符合您的意图。在
使用排序集:我给出了类似的答案here,原则是相同的:
相关问题 更多 >
编程相关推荐