我刚开始使用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时的有序集合是比较合适?
您将要检查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,插入会重用的关键?),所以我刚刚得到的关系型数据库的钥匙在我的项目。
您应该使用分类组用户,当您添加到组,添加用户ID和时间戳作为得分。
然后你可以将它们拉出来在ASC或使用类似zrevrange倒序,其限制为1分的记录,让您的最新。
然后,你可以从你的哈希所有的值。