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

Python 从redis获取最新的集合/哈希,python,sorting,redis,hashset,Python,Sorting,Redis,Hashset,我刚刚开始使用redis,我遇到了使用noSql的第一个绊脚石;以前我只知道SQL server 我理解一切都是基于关键价值的原则。但这与订购有什么关系,例如: 使用哈希集: HMSET users:1 firstname 'james' lastname 'smith' created 'datetime.datatime.now' 现在我假设您添加第二条记录,您将获得哈希集的长度(在本例中,我们将其1返回到值x),然后添加另一行: HMSET users:x firstname 'john

我刚刚开始使用redis,我遇到了使用noSql的第一个绊脚石;以前我只知道SQL server

我理解一切都是基于关键价值的原则。但这与订购有什么关系,例如:

使用哈希集:

HMSET users:1 firstname 'james' lastname 'smith' created 'datetime.datatime.now'
现在我假设您添加第二条记录,您将获得哈希集的长度(在本例中,我们将其1返回到值
x
),然后添加另一行:

HMSET users:x firstname 'john' lastname 'smith' created 'datetime.datatime.now'
你如何获得最新的唱片?按日期?或者您可以说“在hashset的-1处获取记录”


可能我建议在排序集更合适时使用hashset?

您需要检查该命令

如果时间戳存储在历元时间中,则可以按创建时间戳进行排序

> 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"]
你可以得到多个键,如果你想,排序可能是命令与大多数选项,研究文件


关于密钥,您必须仔细考虑可能的密钥重用(delete、count+1、insert是否会重用密钥?),所以我只是从项目中的关系数据库中获取密钥

您应该使用一组已排序的userid,当您添加到该组时,添加userid和时间戳作为分数

然后,您可以使用zrevrange之类的工具按asc或desc顺序将其取出,将此限制为1条记录以获取最新记录


然后你可以从你的散列中得到所有的值。

排序
,在
O(N+M*log(M))
中仍然运行1的限制。?我认为这是
O(N)
,因为
M=1
log(1)==0