Reputation: 1638
In redis, is there an easy method for asking 'which sets does an object appear in?' For example in the code below, I would like to know how to return which sets 'c' appears in?
HMSET cset_details:1 name 'set 1' description 'my first set' date 'today'
HMSET cset_details:2 name 'set 2' description 'my second set' date 'today'
HMSET cset_details:2 name 'set 3' description 'my third set' date 'today'
SADD cset_members:1 a b c d
SADD cset_members:2 c d e
SADD cset_members:3 d e f g
It is not clear to me how to use SISMEMBER to query all available sets.
Thanks
Iain
Upvotes: 1
Views: 94
Reputation: 860
SISMEMBER
(http://redis.io/commands/sismember) is used to test if a certain value is member of a set. If you have multiple sets to test against, you will need to make multiple calls to SISMEMBER
(using MULTI/EXEC
you can send all member tests in one shot). A return value of '1' indicates that the item is in the set and '0' means that it was not found:
127.0.0.1:6379[1]> SADD cset_members:1 a b c d
(integer) 4
127.0.0.1:6379[1]> SADD cset_members:2 c d e
(integer) 3
127.0.0.1:6379[1]> SADD cset_members:3 d e f g
(integer) 4
127.0.0.1:6379[1]> SISMEMBER cset_members:1 c
(integer) 1
127.0.0.1:6379[1]> SISMEMBER cset_members:2 c
(integer) 1
127.0.0.1:6379[1]> SISMEMBER cset_members:3 c
(integer) 0
127.0.0.1:6379[1]>
Upvotes: 1