Module: Oxblood::Commands::SortedSets

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

Instance Method Summary collapse

Instance Method Details

#zadd(key, *args) ⇒ Integer

Add one or more members to a sorted set, or update its score if it already exists.

Parameters:

  • key (String)

    under which store set

  • args ([Float, String], Array<[Float, String]>)

    scores and members

Returns:

  • (Integer)

    The number of elements added to the sorted sets, not including elements already existing for which the score was updated

See Also:



16
17
18
# File 'lib/oxblood/commands/sorted_sets.rb', line 16

def zadd(key, *args)
  run(*args.unshift(:ZADD, key))
end

#zcard(key) ⇒ Integer

Get the number of members in a sorted set

Parameters:

  • key (String)

Returns:

  • (Integer)

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

See Also:



27
28
29
# File 'lib/oxblood/commands/sorted_sets.rb', line 27

def zcard(key)
  run(:ZCARD, key)
end

#zcount(key, min, max) ⇒ Integer

Count the members in a sorted set with scores within the given values

Parameters:

  • key (String)
  • min (String)
  • max (String)

Returns:

  • (Integer)

    the number of elements in the specified score range

See Also:



39
40
41
# File 'lib/oxblood/commands/sorted_sets.rb', line 39

def zcount(key, min, max)
  run(:ZCOUNT, key, min, max)
end

#zincrby(key, increment, member) ⇒ String

Increment the score of a member in a sorted set

Parameters:

  • key (String)
  • increment (Float)
  • member (String)

Returns:

  • (String)

    the new score of member (a double precision floating point number), represented as string

See Also:



52
53
54
# File 'lib/oxblood/commands/sorted_sets.rb', line 52

def zincrby(key, increment, member)
  run(:ZINCRBY, key, increment, member)
end

#zlexcount(key, min, max) ⇒ Object

Count the number of members in a sorted set between a given lexicographical range

Parameters:

  • key (String)
  • min (String)
  • max (String)

Returns:

  • the number of elements in the specified score range

See Also:



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

def zlexcount(key, min, max)
  run(:ZLEXCOUNT, key, min, max)
end

#zrange(key, start, stop, opts = {}) ⇒ Array

Return a range of members in a sorted set, by index

Examples:

session.zrange('myzset', 0, -1)
# => ['one', 'two']
session.zrange('myzset', 0, -1, withscores: true)
# => [['one', '1'], ['two', '2']]

Parameters:

  • key (String)
  • start (Integer)

    index

  • stop (Integer)

    index

  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :withscores (Boolean) — default: false

    Return the scores of the elements together with the elements

Returns:

  • (Array)

    list of elements in the specified range (optionally with their scores, in case the :withscores option is given)

See Also:



90
91
92
# File 'lib/oxblood/commands/sorted_sets.rb', line 90

def zrange(key, start, stop, opts = {})
  common_range(:ZRANGE, key, start, stop, opts)
end

#zrangebyscore(key, min, max, opts = {}) ⇒ Array

Return a range of members in a sorted set, by score

Examples:

session.zrangebyscore('myzset', '-inf', '+inf')
# => ['one', 'two', 'three']
session.zrangebyscore('myzset', '(1', 2, withscores: true)
# => [['two', '2']]
opts = { withscores: true, limit: [1, 1] }
session.zrangebyscore('myzset', '-inf', '+inf', opts)
# => [['two', '2']]

Parameters:

  • key (String)

    under which set is stored

  • min (String)

    score

  • max (String)

    score

  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :withscores (Boolean) — default: false

    Return the scores of the elements together with the elements

  • :limit (Array<Integer, Integer>)

    Get a range of the matching elements (similar to SELECT LIMIT offset, count in SQL)

Returns:

  • (Array)

    list of elements in the specified score range (optionally with their scores, in case the :withscores option is given)

See Also:



122
123
124
# File 'lib/oxblood/commands/sorted_sets.rb', line 122

def zrangebyscore(key, min, max, opts = {})
  common_rangebyscore(:ZRANGEBYSCORE, key, min, max, opts)
end

#zrank(key, member) ⇒ Integer?

Determine the index of a member in a sorted set in the sorted set or key does not exist

Parameters:

  • key (String)
  • member (String)

Returns:

  • (Integer, nil)

    the rank of member or nil if member does not exist

See Also:



134
135
136
# File 'lib/oxblood/commands/sorted_sets.rb', line 134

def zrank(key, member)
  run(:ZRANK, key, member)
end

#zrem(key, *members) ⇒ Integer, RError

Remove one or more members from a sorted set

Parameters:

  • key (String)
  • members (Array<String>)

    to delete

Returns:

  • (Integer)

    number of deleted members

  • (RError)

    when key exists and does not hold a sorted set.

See Also:



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

def zrem(key, *members)
  run(*members.unshift(:ZREM, key))
end

#zremrangebyrank(key, start, stop) ⇒ Integer

Remove all members in a sorted set within the given indexes

Parameters:

  • key (String)
  • start (String)
  • stop (String)

Returns:

  • (Integer)

    the number of elements removed

See Also:



158
159
160
# File 'lib/oxblood/commands/sorted_sets.rb', line 158

def zremrangebyrank(key, start, stop)
  run(:ZREMRANGEBYRANK, key, start, stop)
end

#zremrangebyscore(key, min, max) ⇒ Integer

Remove all members in a sorted set within the given scores

Parameters:

  • key (String)
  • min (String)

    score

  • max (String)

    score

Returns:

  • (Integer)

    the number of elements removed

See Also:



170
171
172
# File 'lib/oxblood/commands/sorted_sets.rb', line 170

def zremrangebyscore(key, min, max)
  run(:ZREMRANGEBYSCORE, key, min, max)
end

#zrevrange(key, start, stop, opts = {}) ⇒ Array

Return a range of members in a sorted set, by index, with scores ordered from high to low

Examples:

session.zrevrange('myzset', 0, -1)
# => ['two', 'one']
session.zrevrange('myzset', 0, -1, withscores: true)
# => [['two', '2'], ['one', '1']]

Parameters:

  • key (String)
  • start (Integer)

    index

  • stop (Integer)

    index

  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :withscores (Boolean) — default: false

    Return the scores of the elements together with the elements

Returns:

  • (Array)

    list of elements in the specified range (optionally with their scores, in case the :withscores option is given)

See Also:



196
197
198
# File 'lib/oxblood/commands/sorted_sets.rb', line 196

def zrevrange(key, start, stop, opts = {})
  common_range(:ZREVRANGE, key, start, stop, opts)
end

#zrevrangebyscore(key, min, max, opts = {}) ⇒ Array

Return a range of members in a sorted set, by score, with scores ordered from high to low

Examples:

session.zrevrangebyscore('myzset', '+inf', '-inf')
# => ['three', 'two', 'one']
session.zrevrangebyscore('myzset', 2, '(1', withscores: true)
# => [['two', '2']]
opts = { withscores: true, limit: [1, 1] }
session.zrevrangebyscore('myzset', '+inf', '-inf', opts)
# => [['two', '2']]

Parameters:

  • key (String)

    under which set is stored

  • min (String)

    score

  • max (String)

    score

  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :withscores (Boolean) — default: false

    Return the scores of the elements together with the elements

  • :limit (Array<Integer, Integer>)

    Get a range of the matching elements (similar to SELECT LIMIT offset, count in SQL)

Returns:

  • (Array)

    list of elements in the specified score range (optionally with their scores, in case the :withscores option is given)

See Also:



229
230
231
# File 'lib/oxblood/commands/sorted_sets.rb', line 229

def zrevrangebyscore(key, min, max, opts = {})
  common_rangebyscore(:ZREVRANGEBYSCORE, key, min, max, opts)
end

#zrevrank(key, member) ⇒ Integer?

Determine the index of a member in a sorted set, with scores ordered from high to low exists in the sorted set or key does not exists

Parameters:

  • key (String)
  • member (String)

Returns:

  • (Integer, nil)

    the rank of member, or nil if member does not

See Also:



242
243
244
# File 'lib/oxblood/commands/sorted_sets.rb', line 242

def zrevrank(key, member)
  run(:ZREVRANK, key, member)
end

#zscore(key, member) ⇒ String?

Get the score associated with the given member in a sorted set point number), represented as string, or nil if member does not exist in the sorted set, or key does not exists

Parameters:

  • key (String)
  • member (String)

Returns:

  • (String, nil)

    the score of member (a double precision floating

See Also:



255
256
257
# File 'lib/oxblood/commands/sorted_sets.rb', line 255

def zscore(key, member)
  run(:ZSCORE, key, member)
end