Redis n00b 在这里所以不要拍!
我需要将一组集合存储在由键索引的 redis 中 - 我可以:
import redis
r = redis.Redis()
r.sadd("A:B:123", *{456, 789})
r.sadd("A:B:124", *{666, 777})
但是如果我想要集合“A:B”,我必须手动收集密钥,如下所示:
{k.rsplit(b':', 1)[-1]: r.smembers(k) for k in r.scan_iter("A:B:*") }
# {b'124': {b'666', b'777'}, b'123': {b'456', b'789'}}
这似乎非常慢(还要注意 rsplit)
我一直在尝试使用 hmset 来做到这一点:
r.hmset("A:B", mapping={123: 'X', 124: 'Z'})
但我找不到用我的集合代替“X”和“Z”的方法。
(请注意,理想情况下设置的元素应该是传入的 int 类型 - 另请注意,这些集合是只读的,所以我想优化查找而不是插入时间)