Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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商店,它有多个列表,索引为list:name\u of_list。是否可以检索所有列表的键,排序方式是元素数最多的列表是第一个,元素数最少的列表是最后一个?不是直接检索,您需要获取列表的长度,然后对其进行排序,然后获取每个列表的元素。您可以在客户机中完成,或者如果愿意,也可以在Lua函数中完成,该函数将充当某种存储过程 在Python/伪代码中,其要点如下所示: lists = ['list1', 'list2', 'list3'] lengths = [client.llen

我有一个redis商店,它有多个列表,索引为
list:name\u of_list
。是否可以检索所有列表的键,排序方式是元素数最多的列表是第一个,元素数最少的列表是最后一个?

不是直接检索,您需要获取列表的长度,然后对其进行排序,然后获取每个列表的元素。您可以在客户机中完成,或者如果愿意,也可以在Lua函数中完成,该函数将充当某种存储过程

在Python/伪代码中,其要点如下所示:

lists = ['list1', 'list2', 'list3']
lengths = [client.llen(lst) for lst in lists]

# zip and sort the lists and their lengths 
keys_and_lengths = sorted(zip(lists, lengths), key=lamda pair: pair[1], reverse=True)

# Get the members, you can chain them in various ways. You can also use a pipeline
members = [client.lrange(key, 0, -1) for key, _ in keys_and_lengths]

请详细说明您具体想要实现的目标。感谢您的反馈。我更新了问题。