【问题标题】:Is there a way to return a sorted key list from a hash?有没有办法从哈希中返回排序的键列表?
【发布时间】:2013-05-09 04:45:54
【问题描述】:

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

我有一个包含姓名和电话号码的散列,我想获得散列中键的排序列表。

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

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

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

 Andrew
 Sam
 Eddy

我想得到这个(有序键):

 Andrew
 Eddy
 Sam

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

【问题讨论】:

  • @SAFX 所以,据我所知,我必须用哈希键构建一个并行列表,然后对该列表进行排序?
  • 找到了更好的方法,见下文,希望对您有所帮助...

标签: redis


【解决方案1】:

您可以使用排序集来实现这一点,而不是哈希,并且您不需要维护并行列表;它都包含在一个单一的结构中......

填充排序集...

> 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"

希望对你有帮助...

【讨论】:

    猜你喜欢
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多