Redis:按元素数量对列表中的键进行排序
我有一个redis商店,它有多个列表,索引为Redis:按元素数量对列表中的键进行排序,redis,Redis,我有一个redis商店,它有多个列表,索引为list:name\u of_list。是否可以检索所有列表的键,排序方式是元素数最多的列表是第一个,元素数最少的列表是最后一个?不是直接检索,您需要获取列表的长度,然后对其进行排序,然后获取每个列表的元素。您可以在客户机中完成,或者如果愿意,也可以在Lua函数中完成,该函数将充当某种存储过程 在Python/伪代码中,其要点如下所示: lists = ['list1', 'list2', 'list3'] lengths = [client.llen
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]
请详细说明您具体想要实现的目标。感谢您的反馈。我更新了问题。