python - 从 redis 获取最新的集合/哈希

标签 python sorting redis hashset

我刚刚开始使用 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/

相关文章:

java - 自底向上归并排序的实现中是否存在可能的勘误表

arrays - Swift 4 排序多维数组

Jquery sortable - 排序列表手册

node.js - Redis 流 : How to manage perpetual subscription and BLOCK behaviour?

python - PyCharm 中的 "ImportError: DLL load failed"和 conda : how to automatically import conda's PATH?

python - 如何使用 python/pandas 计算列中相同的连续值的数量?

c# - 在 Redis 中使用字段值查询数据

Python 依赖关系以及 Docker 和 Crontab

python - 将列表解析为另一个函数参数 - Python

python - 根据行中的条件向数据框中添加列