充分利用Redis的最新的一组/哈希

问题描述 投票:5回答:2

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

你将如何获得最新的记录?按日期?或者可你刚才说“在一个HashSet -1获取记录”?

也许我提议用一个HashSet时的有序集合是比较合适?

python sorting redis hashset
2个回答
2
投票

您将要检查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"]

你可以得到多个按键,如果你想,排序是可能与大多数选项命令,学习文档。

关于按键,你必须仔细考虑可能的密钥重用(删除,计数+ 1,插入会重用的关键?),所以我刚刚得到的关系型数据库的钥匙在我的项目。


0
投票

您应该使用分类组用户,当您添加到组,添加用户ID和时间戳作为得分。

然后你可以将它们拉出来在ASC或使用类似zrevrange倒序,其限制为1分的记录,让您的最新。

然后,你可以从你的哈希所有的值。

© www.soinside.com 2019 - 2024. All rights reserved.