有没有办法从散列中返回排序的键列表?

时间:2013-05-07 09:03:19

标签: redis

我是redis新手并阅读文档我无法找到解决问题的方法。

我有一个带有姓名和电话号码的哈希,我想得到哈希中键的排序列表。

所以我的哈希(电话簿)看起来像这样:

 Andrew -> 9999
 Sam    -> 6666
 Eddy   -> 5555

如果我运行hkeys phonebook,我会得到这个(密钥会在存储时返回):

 Andrew
 Sam
 Eddy

我想得到这个(有序密钥):

 Andrew
 Eddy
 Sam

我如何存档?我使用的是正确的数据结构吗?

1 个答案:

答案 0 :(得分:2)

您可以使用有序集来实现此目的,而不是哈希,并且您不需要维护并行列表;它全部包含在一个结构中......

填充已排序的集合...

> zadd ss:phonebook 9999 Andrew
> zadd ss:phonebook 4444 Sam
> zadd ss:phonebook 3333 Bob
> zadd ss:phonebook 7777 Maria
> zadd ss:phonebook 8888 Sophia

由于ss:phonebook包含字符串值(名称),并且您希望按字典顺序对它们进行排序,请使用ALPHA修饰符:

> SORT ss:phonebook ALPHA
1) "Andrew"
2) "Bob"
3) "Maria"
4) "Sam"
5) "Sophia"

希望它有所帮助...