Module: Oxblood::Commands::Sets

Included in:
Oxblood::Commands
Defined in:
lib/oxblood/commands/sets.rb

Instance Method Summary collapse

Instance Method Details

#sadd(key, *members) ⇒ Integer

Add one or more members to a set

Parameters:

  • key (String)

    under which store set

  • members (String, Array<String>)

    to store

Returns:

  • (Integer)

    the number of elements that were added to the set, not including all the elements already present into the set.

See Also:



12
13
14
# File 'lib/oxblood/commands/sets.rb', line 12

def sadd(key, *members)
  run(*members.unshift(:SADD, key))
end

#scard(key) ⇒ Integer

Get the number of members in a set

Parameters:

  • key (String)

Returns:

  • (Integer)

    the cardinality (number of elements) of the set, or 0 if key does not exist

See Also:



23
24
25
# File 'lib/oxblood/commands/sets.rb', line 23

def scard(key)
  run(:SCARD, key)
end

#sdiff(*keys) ⇒ Array

Subtract multiple sets

Parameters:

  • keys (String, Array<String>)

Returns:

  • (Array)

    array with members of the resulting set

See Also:



33
34
35
# File 'lib/oxblood/commands/sets.rb', line 33

def sdiff(*keys)
  run(*keys.unshift(:SDIFF))
end

#sdiffstore(destination, *keys) ⇒ Integer

Subtract multiple sets and store the resulting set in a key

Parameters:

  • destination (String)

    key

  • keys (String, Array<String>)

    of sets to diff

Returns:

  • (Integer)

    the number of elements in the resulting set

See Also:



44
45
46
# File 'lib/oxblood/commands/sets.rb', line 44

def sdiffstore(destination, *keys)
  run(*keys.unshift(:SDIFFSTORE, destination))
end

#sinter(*keys) ⇒ Array

Intersect multiple sets

Parameters:

  • keys (String, Array<String>)

    to intersect

Returns:

  • (Array)

    array with members of the resulting set

See Also:



54
55
56
# File 'lib/oxblood/commands/sets.rb', line 54

def sinter(*keys)
  run(*keys.unshift(:SINTER))
end

#sinterstore(destination, *keys) ⇒ Integer

Intersect multiple sets and store the resulting key in a key

Parameters:

  • destination (String)

    key

  • keys (String, Array<String>)

    of sets to intersect

Returns:

  • (Integer)

    the number of elements in the resulting set

See Also:



65
66
67
# File 'lib/oxblood/commands/sets.rb', line 65

def sinterstore(destination, *keys)
  run(*keys.unshift(:SINTERSTORE, destination))
end

#sismember(key, member) ⇒ Integer

Determine if a given value is a member of a set

Parameters:

  • key (String)
  • member (String)

Returns:

  • (Integer)

    1 if the element is a member of the set or 0 if the element is not a member of the set, or if key does not exist

See Also:



77
78
79
# File 'lib/oxblood/commands/sets.rb', line 77

def sismember(key, member)
  run(:SISMEMBER, key, member)
end

#smembers(key) ⇒ Array

Get all the members in a set

Parameters:

  • key (String)

Returns:

  • (Array)

    all elements of the set

See Also:



87
88
89
# File 'lib/oxblood/commands/sets.rb', line 87

def smembers(key)
  run(:SMEMBERS, key)
end

#smove(source, destination, member) ⇒ Integer

Move a member from one set to another

Parameters:

  • source (String)
  • destination (String)
  • member (String)

Returns:

  • (Integer)

    1 if the element is moved, or 0 if the element is not a member of source and no operation was performed

See Also:



100
101
102
# File 'lib/oxblood/commands/sets.rb', line 100

def smove(source, destination, member)
  run(:SMOVE, source, destination, member)
end

#spop(key, count = nil) ⇒ String, Array

Remove and return one or multiple random members from a set

Parameters:

  • key (String)
  • count (Integer) (defaults to: nil)

Returns:

  • (String)

    without the additional count argument the command returns the removed element, or nil when key does not exist

  • (Array)

    when the additional count argument is passed the command returns an array of removed elements, or an empty array when key does not exist.

See Also:



115
116
117
118
119
# File 'lib/oxblood/commands/sets.rb', line 115

def spop(key, count = nil)
  args = [:SPOP, key]
  args << count if count
  run(*args)
end

#srandmember(key, count = nil) ⇒ String, ...

Get one or multiple random members from a set

Parameters:

  • key (String)
  • count (Integer) (defaults to: nil)

Returns:

  • (String, nil)

    without the additional count argument the command returns string with the randomly selected element, or nil when key does not exist

  • (Array)

    when the additional count argument is passed the command returns an array of elements, or an empty array when key does not exist

See Also:



132
133
134
135
136
# File 'lib/oxblood/commands/sets.rb', line 132

def srandmember(key, count = nil)
  args = [:SRANDMEMBER, key]
  args << count if count
  run(*args)
end

#srem(key, *members) ⇒ Integer

Remove one or more members from a set

Parameters:

  • key (String)
  • members (Array)

    to remove

Returns:

  • (Integer)

    the number of members that were removed from the set, not including non existing members

See Also:



146
147
148
# File 'lib/oxblood/commands/sets.rb', line 146

def srem(key, *members)
  run(*members.unshift(:SREM, key))
end

#sunion(*keys) ⇒ Array

Add multiple sets

Parameters:

  • keys (String, Array<String>)

Returns:

  • (Array)

    list with members of the resulting set

See Also:



156
157
158
# File 'lib/oxblood/commands/sets.rb', line 156

def sunion(*keys)
  run(*keys.unshift(:SUNION))
end

#sunionstore(destination, *keys) ⇒ Integer

Add multipe sets and store the resulting set in a key

Parameters:

  • destination (String)
  • keys (String, Array<String>)

Returns:

  • (Integer)

    the number of elements in the resulting set

See Also:



167
168
169
# File 'lib/oxblood/commands/sets.rb', line 167

def sunionstore(destination, *keys)
  run(*keys.unshift(:SUNIONSTORE, destination))
end