Class: RedisMemo::Redis::WithReplicas

Inherits:
Redis
  • Object
show all
Defined in:
lib/redis_memo/redis.rb

Instance Method Summary collapse

Constructor Details

#initialize(orig_options) ⇒ WithReplicas

Returns a new instance of WithReplicas.



48
49
50
51
52
53
54
55
56
57
58
# File 'lib/redis_memo/redis.rb', line 48

def initialize(orig_options)
  options = orig_options.dup
  primary_option = options.shift
  @replicas = options.map do |option|
    option[:logger] ||= RedisMemo::DefaultOptions.logger
    ::Redis.new(option)
  end

  primary_option[:logger] ||= RedisMemo::DefaultOptions.logger
  super(primary_option)
end

Instance Method Details

#get(key) ⇒ Object



64
65
66
67
68
# File 'lib/redis_memo/redis.rb', line 64

def get(key)
  return get_primary(key) if @replicas.empty?

  @replicas.sample(1).first.get(key)
end

#get_primaryObject



60
# File 'lib/redis_memo/redis.rb', line 60

alias_method :get_primary, :get

#mapped_mget(*keys) ⇒ Object



76
77
78
79
80
# File 'lib/redis_memo/redis.rb', line 76

def mapped_mget(*keys)
  return mapped_mget_primary(*keys) if @replicas.empty?

  @replicas.sample(1).first.mapped_mget(*keys)
end

#mapped_mget_primaryObject



62
# File 'lib/redis_memo/redis.rb', line 62

alias_method :mapped_mget_primary, :mapped_mget

#mget(*keys, &blk) ⇒ Object



70
71
72
73
74
# File 'lib/redis_memo/redis.rb', line 70

def mget(*keys, &blk)
  return mget_primary(*keys, &blk) if @replicas.empty?

  @replicas.sample(1).first.mget(*keys)
end

#mget_primaryObject



61
# File 'lib/redis_memo/redis.rb', line 61

alias_method :mget_primary, :mget