Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis 有没有办法从散列中返回已排序的键列表?_Redis - Fatal编程技术网

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

Redis 有没有办法从散列中返回已排序的键列表?,redis,Redis,我是redis新手,阅读文档时无法找到问题的解决方案 我有一个包含姓名和电话号码的散列,我想得到散列中键的排序列表 因此,我的哈希(电话簿)如下所示: Andrew -> 9999 Sam -> 6666 Eddy -> 5555 如果我运行hkeys电话簿,我会得到以下信息(按键在存储时返回): 我想得到这个(订购的钥匙): 我怎么能把这个存档?我使用的是正确的数据结构吗?您可以使用排序集来实现这一点,而不是散列,并且不需要维护并行列表;它都包含在一个结构中

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

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

因此,我的哈希(电话簿)如下所示:

 Andrew -> 9999
 Sam    -> 6666
 Eddy   -> 5555
如果我运行
hkeys电话簿
,我会得到以下信息(按键在存储时返回):

我想得到这个(订购的钥匙):


我怎么能把这个存档?我使用的是正确的数据结构吗?

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

填充已排序的集合

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

希望对您有所帮助……

您看到了吗@所以,据我所知,我必须用散列的键构建一个并行列表,然后对该列表进行排序?找到了一个更好的方法,请参见下文,希望能有所帮助。。。
> 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
> SORT ss:phonebook ALPHA
1) "Andrew"
2) "Bob"
3) "Maria"
4) "Sam"
5) "Sophia"