module Redis::Commands::Sets
def sadd(key, *members)
-
(Integer)
- The number of members that were successfully added
Parameters:
-
member
(String, Array
) -- one member, or array of members -
key
(String
) --
def sadd(key, *members) members.flatten!(1) send_command([:sadd, key].concat(members)) end
def sadd?(key, *members)
-
(Boolean)
- Wether at least one member was successfully added.
Parameters:
-
member
(String, Array
) -- one member, or array of members -
key
(String
) --
def sadd?(key, *members) members.flatten!(1) send_command([:sadd, key].concat(members), &Boolify) end
def scard(key)
-
(Integer)
-
Parameters:
-
key
(String
) --
def scard(key) send_command([:scard, key]) end
def sdiff(*keys)
-
(Array
- members in the difference)
Parameters:
-
keys
(String, Array
) -- keys pointing to sets to subtract
def sdiff(*keys) keys.flatten!(1) send_command([:sdiff].concat(keys)) end
def sdiffstore(destination, *keys)
-
(Integer)
- number of elements in the resulting set
Parameters:
-
keys
(String, Array
) -- keys pointing to sets to subtract -
destination
(String
) -- destination key
def sdiffstore(destination, *keys) keys.flatten!(1) send_command([:sdiffstore, destination].concat(keys)) end
def sinter(*keys)
-
(Array
- members in the intersection)
Parameters:
-
keys
(String, Array
) -- keys pointing to sets to intersect
def sinter(*keys) keys.flatten!(1) send_command([:sinter].concat(keys)) end
def sinterstore(destination, *keys)
-
(Integer)
- number of elements in the resulting set
Parameters:
-
keys
(String, Array
) -- keys pointing to sets to intersect -
destination
(String
) -- destination key
def sinterstore(destination, *keys) keys.flatten!(1) send_command([:sinterstore, destination].concat(keys)) end
def sismember(key, member)
-
(Boolean)
-
Parameters:
-
member
(String
) -- -
key
(String
) --
def sismember(key, member) send_command([:sismember, key, member], &Boolify) end
def smembers(key)
-
(Array
-)
Parameters:
-
key
(String
) --
def smembers(key) send_command([:smembers, key]) end
def smismember(key, *members)
-
(Array
-)
Parameters:
-
members
(String, Array
) -- -
key
(String
) --
def smismember(key, *members) members.flatten!(1) send_command([:smismember, key].concat(members)) do |reply| reply.map(&Boolify) end end
def smove(source, destination, member)
-
(Boolean)
-
Parameters:
-
member
(String
) -- member to move from `source` to `destination` -
destination
(String
) -- destination key -
source
(String
) -- source key
def smove(source, destination, member) send_command([:smove, source, destination, member], &Boolify) end
def spop(key, count = nil)
-
count
(Integer
) -- -
key
(String
) --
Returns:
-
(String)
-
def spop(key, count = nil) if count.nil? send_command([:spop, key]) else send_command([:spop, key, Integer(count)]) end end
def srandmember(key, count = nil)
-
(String)
-
Parameters:
-
count
(Integer
) -- -
key
(String
) --
def srandmember(key, count = nil) if count.nil? send_command([:srandmember, key]) else send_command([:srandmember, key, count]) end end
def srem(key, *members)
-
(Integer)
- The number of members that were successfully removed
Parameters:
-
member
(String, Array
) -- one member, or array of members -
key
(String
) --
def srem(key, *members) members.flatten!(1) send_command([:srem, key].concat(members)) end
def srem?(key, *members)
-
(Boolean)
- Wether at least one member was successfully removed.
Parameters:
-
member
(String, Array
) -- one member, or array of members -
key
(String
) --
def srem?(key, *members) members.flatten!(1) send_command([:srem, key].concat(members), &Boolify) end
def sscan(key, cursor, **options)
-
(String, Array
- the next cursor and all found members)
Parameters:
-
options
(Hash
) -- -
cursor
(String, Integer
) -- the cursor of the iteration
Other tags:
- Example: Retrieve the first batch of keys in a set -
def sscan(key, cursor, **options) _scan(:sscan, cursor, [key], **options) end
def sscan_each(key, **options, &block)
-
(Enumerator)
- an enumerator for all keys in the set
Parameters:
-
options
(Hash
) --
Other tags:
- Example: Retrieve all of the keys in a set -
def sscan_each(key, **options, &block) return to_enum(:sscan_each, key, **options) unless block_given? cursor = 0 loop do cursor, keys = sscan(key, cursor, **options) keys.each(&block) break if cursor == "0" end end
def sunion(*keys)
-
(Array
- members in the union)
Parameters:
-
keys
(String, Array
) -- keys pointing to sets to unify
def sunion(*keys) keys.flatten!(1) send_command([:sunion].concat(keys)) end
def sunionstore(destination, *keys)
-
(Integer)
- number of elements in the resulting set
Parameters:
-
keys
(String, Array
) -- keys pointing to sets to unify -
destination
(String
) -- destination key
def sunionstore(destination, *keys) keys.flatten!(1) send_command([:sunionstore, destination].concat(keys)) end