class SidekiqUniqueJobs::Redis::SortedSet

Class SortedSet provides convenient access to redis sorted sets

@author Mikael Henriksson <mikael@mhenrixon.com>

Public Instance Methods

add(values) click to toggle source

Adds a value to the sorted set

@param [Array<Float, String>, String] values the values to add

@return [Boolean, Integer] <description>

# File lib/sidekiq_unique_jobs/redis/sorted_set.rb, line 33
def add(values)
  redis do |conn|
    if values.is_a?(Array)
      conn.zadd(key, values)
    else
      conn.zadd(key, now_f, values)
    end
  end
end
clear() click to toggle source

Clears the sorted set from all entries

@return [Integer] number of entries removed

# File lib/sidekiq_unique_jobs/redis/sorted_set.rb, line 71
def clear
  redis { |conn| conn.zremrangebyrank(key, 0, count) }
end
count() click to toggle source

Returns the count for this sorted set

@return [Integer] the number of entries

# File lib/sidekiq_unique_jobs/redis/sorted_set.rb, line 81
def count
  redis { |conn| conn.zcard(key) }
end
entries(with_scores: true) click to toggle source

Return entries for this sorted set

@param [true,false] with_scores true return

@return [Array<Object>] when given with_scores: false @return [Hash] when given with_scores: true

# File lib/sidekiq_unique_jobs/redis/sorted_set.rb, line 19
def entries(with_scores: true)
  entrys = redis { |conn| conn.zrange(key, 0, -1, with_scores: with_scores) }
  return entrys unless with_scores

  entrys.each_with_object({}) { |pair, hash| hash[pair[0]] = pair[1] }
end
rank(member) click to toggle source

Return the zrak of the member

@param [String] member the member to pull rank on

@return [Integer]

# File lib/sidekiq_unique_jobs/redis/sorted_set.rb, line 50
def rank(member)
  redis { |conn| conn.zrank(key, member) }
end
score(member) click to toggle source

Return score for a member

@param [String] member the member for which score

@return [Integer, Float]

# File lib/sidekiq_unique_jobs/redis/sorted_set.rb, line 61
def score(member)
  redis { |conn| conn.zscore(key, member) }
end