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.



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/redis_memo/redis.rb', line 34

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



50
51
52
53
54
# File 'lib/redis_memo/redis.rb', line 50

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

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

#get_primaryObject



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

alias_method :get_primary, :get

#mapped_mget(*keys) ⇒ Object



62
63
64
65
66
# File 'lib/redis_memo/redis.rb', line 62

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

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

#mapped_mget_primaryObject



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

alias_method :mapped_mget_primary, :mapped_mget

#mget(*keys, &blk) ⇒ Object



56
57
58
59
60
# File 'lib/redis_memo/redis.rb', line 56

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

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

#mget_primaryObject



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

alias_method :mget_primary, :mget