class Rediscan

Public Class Methods

new(redis) click to toggle source
# File lib/rediscan.rb, line 2
def initialize(redis)
  @redis = redis
  @cursor = "0"
end

Public Instance Methods

each(match: nil, count: nil, &block) click to toggle source
# File lib/rediscan.rb, line 7
def each(match: nil, count: nil, &block)
  done = false
  args = []
  args.push("MATCH", match) if match
  args.push("COUNT", count) if count

  until done
    @cursor, keys = @redis.call("SCAN", @cursor, *args)
    done = @cursor == "0"

    keys.each(&block)
  end
end