我有一组成员。例如,名为“college”的集合包含 20 所大学的名称。
现在如何只删除一个子集,例如一组选定的 10 所大学,来自集合?
我运行的是v2.4.5的redis服务器
在此处找到的文档 http://redis.io/commands/srem说我们可以删除 redis >= 2.4 的多个键,但仍然无法弄清楚如何实现这一点。
我正在使用 RubyonRails,并且是在我的 Rails 控制台中完成的
> $redis
#<Redis client v2.2.2 connected to redis://localhost:6379/0 (Redis v2.4.5)>
> ruby-1.9.3-p0 :011 > $redis.sadd("college","champion1")
=> true
ruby-1.9.3-p0 :012 > $redis.sadd("college","champion2")
=> true
ruby-1.9.3-p0 :013 > $redis.sadd("college","champion3")
=> true
ruby-1.9.3-p0 :014 > $redis.sadd("college","champion4")
=> true
ruby-1.9.3-p0 :015 > $redis.sadd("college","champion5")
=> true
ruby-1.9.3-p0 :016 > $redis.smembers("college")
=> ["champion1", "champion2", "champion3", "champion4", "champion5"
ruby-1.9.3-p0 :017 > $redis.srem("college","champion1" "champion2")
=> false
ruby-1.9.3-p0 :018 > $redis.smembers("college")
=> ["champion1", "champion2", "champion3", "champion4", "champion5"]
成员“champion1”和“champion2”不会从集合中删除。
我已经安装了 redis (2.2.2 ruby) gem。
最佳答案
鉴于您的客户端库不支持执行此操作的简单方法,您可以使用 sdiff或 sdiffstore .创建一组待移除的成员并获取集合的差异,并将结果存回原始集合。
它可能有点复杂,但应该可以。
关于redis 从集合中删除特定成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10592749/