redis从集中删除特定成员
问题描述:
我有一组成员。例如,名为“学院”的一组名称为20所大学。redis从集中删除特定成员
现在我该如何删除一个子集,例如一组选定的10所大学,从设置?
我运行v2.4.5
这里http://redis.io/commands/srem发现该文档的Redis的服务器说,我们可以删除多个键的Redis> = 2.4,但还是没能弄清楚如何实现这一目标。
我与RubyonRails工作,我做到了我的轨道控制台
> $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。
答
% telnet localhost 6379
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
...
sadd myset 1 2 3
:3
srem myset 1 3
:2
答
对不起,这是Rails特有的问题。
我已经安装了redis gem版本2.2.2,它不支持删除多个密钥。 但是,如果redis服务器> = 2.4进入redis-cli,我们可以实现它。
[email protected]:~/projects/test_proj [master]$ redis-cli
redis 127.0.0.1:6379> smembers "college"
1) "champion1"
2) "champion2"
3) "champion3"
4) "champion4"
5) "champion5"
redis 127.0.0.1:6379> srem "college" "champion1" "champion2"
(integer) 2
redis 127.0.0.1:6379> smembers "college"
1) "champion3"
2) "champion4"
3) "champion5"
redis 127.0.0.1:6379> exit
哇我从来没有想过这样做...竖起大拇指。我将使用它,直到客户端库提供它。 – Gagan