在Redis中从多个集合中删除成员

在Redis中从多个集合中删除成员,redis,Redis,我的redis存储中有一些产品和类别。我使用类别集按指定类别查找产品 SADD category:1 product1 product2 product3 product4 SADD category:2 product2 product5 SADD category:5 product1 product7 除了迭代所有类别之外,是否有任何方法可以从所有类别中删除单个产品?像这样的魔法: SREM category:* product2 没有魔法命令 您可以使用(另一个)集合来跟踪每个产品的

我的redis存储中有一些产品和类别。我使用类别集按指定类别查找产品

SADD category:1 product1 product2 product3 product4
SADD category:2 product2 product5
SADD category:5 product1 product7
除了迭代所有类别之外,是否有任何方法可以从所有类别中删除单个产品?像这样的魔法:

SREM category:* product2

没有魔法命令

您可以使用(另一个)集合来跟踪每个产品的类别集合。例如,在您的示例中,您必须执行以下操作:

SADD product2:categories category:1 category:2
然后对该集合的每个成员(
SMEMBERS
SSCAN
获取它们),对该类别的产品执行
SREM

SADD category:1 product1 product2 product3 product4
SADD category:2 product2 product5
SADD category:5 product1 product7
请注意,虽然这似乎是Lua脚本的完美候选,但事实并非如此。这是因为您在修改键(类别的集合)时,没有通过键输入构造显式地提供它们的名称,这是一种避免的做法,它将使所述脚本与集群不兼容