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.



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

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

  super(primary_option)
end

Instance Method Details

#get(key) ⇒ Object



60
61
62
63
64
# File 'lib/redis_memo/redis.rb', line 60

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

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

#get_primaryObject



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

alias_method :get_primary, :get

#mapped_mget(*keys) ⇒ Object



72
73
74
75
76
# File 'lib/redis_memo/redis.rb', line 72

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

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

#mapped_mget_primaryObject



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

alias_method :mapped_mget_primary, :mapped_mget

#mget(*keys, &blk) ⇒ Object



66
67
68
69
70
# File 'lib/redis_memo/redis.rb', line 66

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

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

#mget_primaryObject



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

alias_method :mget_primary, :mget