我的redis存储中有产品和类别。我正在使用类别集来按指定的类别查找产品。
SADD category:1 product1 product2 product3 product4
SADD category:2 product2 product5
SADD category:5 product1 product7
除了迭代所有类别之外,有没有办法从所有类别中删除单个产品?像这样的一些魔术:
SREM category:* product2
答案 0 :(得分:1)
没有神奇的命令。
您可以做的是使用(又一个)设置为跟踪每个产品的类别集。例如,在您的示例中,您必须执行以下操作:
SADD product2:categories category:1 category:2
然后对于每个Set的成员(SMEMBERS
或SSCAN
来获取它们),为该类别的产品执行SREM
。
请注意,虽然这似乎是Lua脚本的完美候选者,但实际上并非如此。这是因为您要修改键(类别集)而不通过KEYS输入构造明确提供它们的名称,这是一种避免使用该脚本非集群兼容的实践。