Module: Redis::Commands::Sets
- Included in:
- Redis::Commands
- Defined in:
- lib/redis/commands/sets.rb
Instance Method Summary collapse
-
#sadd(key, member) ⇒ Boolean, Integer
Add one or more members to a set.
-
#sadd?(key, member) ⇒ Boolean
Add one or more members to a set.
-
#scard(key) ⇒ Integer
Get the number of members in a set.
-
#sdiff(*keys) ⇒ Array<String>
Subtract multiple sets.
-
#sdiffstore(destination, *keys) ⇒ Integer
Subtract multiple sets and store the resulting set in a key.
-
#sinter(*keys) ⇒ Array<String>
Intersect multiple sets.
-
#sinterstore(destination, *keys) ⇒ Integer
Intersect multiple sets and store the resulting set in a key.
-
#sismember(key, member) ⇒ Boolean
Determine if a given value is a member of a set.
-
#smembers(key) ⇒ Array<String>
Get all the members in a set.
-
#smismember(key, *members) ⇒ Array<Boolean>
Determine if multiple values are members of a set.
-
#smove(source, destination, member) ⇒ Boolean
Move a member from one set to another.
-
#spop(key, count = nil) ⇒ String
Remove and return one or more random member from a set.
-
#srandmember(key, count = nil) ⇒ String
Get one or more random members from a set.
-
#srem(key, member) ⇒ Boolean, Integer
Remove one or more members from a set.
-
#srem?(key, member) ⇒ Boolean
Remove one or more members from a set.
-
#sscan(key, cursor, **options) ⇒ String+
Scan a set.
-
#sscan_each(key, **options, &block) ⇒ Enumerator
Scan a set.
-
#sunion(*keys) ⇒ Array<String>
Add multiple sets.
-
#sunionstore(destination, *keys) ⇒ Integer
Add multiple sets and store the resulting set in a key.
Instance Method Details
#sadd(key, member) ⇒ Boolean, Integer
Add one or more members to a set.
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/redis/commands/sets.rb', line 22 def sadd(key, member) block = if Redis.sadd_returns_boolean && !member.is_a?(Array) ::Redis.deprecate!( "Redis#sadd will always return an Integer in Redis 5.0.0. Use Redis#sadd? instead." \ "(called from: #{caller(1, 1).first})" ) Boolify end send_command([:sadd, key, member], &block) end |
#sadd?(key, member) ⇒ Boolean
Add one or more members to a set.
38 39 40 |
# File 'lib/redis/commands/sets.rb', line 38 def sadd?(key, member) send_command([:sadd, key, member], &Boolify) end |
#scard(key) ⇒ Integer
Get the number of members in a set.
10 11 12 |
# File 'lib/redis/commands/sets.rb', line 10 def scard(key) send_command([:scard, key]) end |
#sdiff(*keys) ⇒ Array<String>
Subtract multiple sets.
138 139 140 |
# File 'lib/redis/commands/sets.rb', line 138 def sdiff(*keys) send_command([:sdiff, *keys]) end |
#sdiffstore(destination, *keys) ⇒ Integer
Subtract multiple sets and store the resulting set in a key.
147 148 149 |
# File 'lib/redis/commands/sets.rb', line 147 def sdiffstore(destination, *keys) send_command([:sdiffstore, destination, *keys]) end |
#sinter(*keys) ⇒ Array<String>
Intersect multiple sets.
155 156 157 |
# File 'lib/redis/commands/sets.rb', line 155 def sinter(*keys) send_command([:sinter, *keys]) end |
#sinterstore(destination, *keys) ⇒ Integer
Intersect multiple sets and store the resulting set in a key.
164 165 166 |
# File 'lib/redis/commands/sets.rb', line 164 def sinterstore(destination, *keys) send_command([:sinterstore, destination, *keys]) end |
#sismember(key, member) ⇒ Boolean
Determine if a given value is a member of a set.
111 112 113 |
# File 'lib/redis/commands/sets.rb', line 111 def sismember(key, member) send_command([:sismember, key, member], &Boolify) end |
#smembers(key) ⇒ Array<String>
Get all the members in a set.
130 131 132 |
# File 'lib/redis/commands/sets.rb', line 130 def smembers(key) send_command([:smembers, key]) end |
#smismember(key, *members) ⇒ Array<Boolean>
Determine if multiple values are members of a set.
120 121 122 123 124 |
# File 'lib/redis/commands/sets.rb', line 120 def smismember(key, *members) send_command([:smismember, key, *members]) do |reply| reply.map(&Boolify) end end |
#smove(source, destination, member) ⇒ Boolean
Move a member from one set to another.
102 103 104 |
# File 'lib/redis/commands/sets.rb', line 102 def smove(source, destination, member) send_command([:smove, source, destination, member], &Boolify) end |
#spop(key, count = nil) ⇒ String
Remove and return one or more random member from a set.
75 76 77 78 79 80 81 |
# File 'lib/redis/commands/sets.rb', line 75 def spop(key, count = nil) if count.nil? send_command([:spop, key]) else send_command([:spop, key, count]) end end |
#srandmember(key, count = nil) ⇒ String
Get one or more random members from a set.
88 89 90 91 92 93 94 |
# File 'lib/redis/commands/sets.rb', line 88 def srandmember(key, count = nil) if count.nil? send_command([:srandmember, key]) else send_command([:srandmember, key, count]) end end |
#srem(key, member) ⇒ Boolean, Integer
Remove one or more members from a set.
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/redis/commands/sets.rb', line 50 def srem(key, member) block = if Redis.sadd_returns_boolean && !member.is_a?(Array) ::Redis.deprecate!( "Redis#srem will always return an Integer in Redis 5.0.0. Use Redis#srem? instead." \ "(called from: #{caller(1, 1).first})" ) Boolify end send_command([:srem, key, member], &block) end |
#srem?(key, member) ⇒ Boolean
Remove one or more members from a set.
66 67 68 |
# File 'lib/redis/commands/sets.rb', line 66 def srem?(key, member) send_command([:srem, key, member], &Boolify) end |
#sscan(key, cursor, **options) ⇒ String+
Scan a set
196 197 198 |
# File 'lib/redis/commands/sets.rb', line 196 def sscan(key, cursor, **) _scan(:sscan, cursor, [key], **) end |
#sscan_each(key, **options, &block) ⇒ Enumerator
Scan a set
211 212 213 214 215 216 217 218 219 220 |
# File 'lib/redis/commands/sets.rb', line 211 def sscan_each(key, **, &block) return to_enum(:sscan_each, key, **) unless block_given? cursor = 0 loop do cursor, keys = sscan(key, cursor, **) keys.each(&block) break if cursor == "0" end end |
#sunion(*keys) ⇒ Array<String>
Add multiple sets.
172 173 174 |
# File 'lib/redis/commands/sets.rb', line 172 def sunion(*keys) send_command([:sunion, *keys]) end |
#sunionstore(destination, *keys) ⇒ Integer
Add multiple sets and store the resulting set in a key.
181 182 183 |
# File 'lib/redis/commands/sets.rb', line 181 def sunionstore(destination, *keys) send_command([:sunionstore, destination, *keys]) end |