我刚刚开始使用 Redis,但在使用 noSql 时遇到了我的第一个绊脚石;以前我只知道 SQL 服务器。
我明白一切都是基于键值的原则。但这如何与订购一起使用,例如:
使用哈希集:
HMSET users:1 firstname 'james' lastname 'smith' created 'datetime.datatime.now'
现在我假设您添加第二条记录,您将获得散列集的长度(在这种情况下,我们会说它的 1 返回值 x
),然后添加另一行:
HMSET users:x firstname 'john' lastname 'smith' created 'datetime.datatime.now'
如何获取最新记录?按日期?或者您可以只说“在哈希集的 -1 处获取记录”吗?
可能我建议在排序集更合适时使用哈希集?
最佳答案
您需要检查 SORT命令。
如果时间戳以纪元时间存储,您可以按创建时间戳排序。
> HMSET users:1 firstname 'john' lastname 'smith' created 1319729878
"OK"
> HMSET users:2 firstname 'Jane' lastname 'Forbes' created 1319729910
"OK"
> sadd users 1
true
> sadd users 2
true
> sort users get users:*->firstname by users:*->created
["john","Jane"]
> sort users get users:*->firstname by users:*->created desc
["Jane","john"]
如果需要,您可以获得多个键,SORT 可能是选项最多的命令,请研究文档。
关于键,你必须仔细考虑可能的键重用(删除,计数+1,插入会重用键吗?),所以我只是在我的项目中从关系数据库中获取键。
关于python - 从 redis 获取最新的集合/哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7914436/