首页 > 解决方案 > 我们可以将列表作为值添加到 redis 中的排序集吗?

问题描述

我正在尝试根据分数创建一组排序的列表。就像是:

li="li"
list1 = ['a','b','c']
list2 = ['a','d','e']
redis.zadd(li,1,list1)
redis.zadd(li,2,list2)

我们能做到这一点,或者有什么方法可以做到这一点。

标签: pythonlistredissortedset

解决方案


要检索前 10 名列表,您可以这样做

为每个列表创建一个集合并将 setId 添加到排序集合

redis.sadd(setId, ...setElements)
redis.sadd(setId, ...setElements)
redis.sadd(setId, ...setElements)

redis.zadd(key, score, setId)
redis.zadd(key, score, setId)
redis.zadd(key, score, setId)
redis.zadd(key, score, setId)

redis.zrange(key, 0, 10) # get the top 10 setId (only the key names)

如果您也想获取数据,可以创建一个管道并调用smember每个 keyId


推荐阅读