Module: ExcessFlow::RedisConnection

Defined in:
lib/excess_flow/redis_connection.rb

Overview

ExcessFlow::RedisConnection

Wrapper around ConnectionPool and Redis to provide connectivity to Redis with desired configuration and sane connection pool

Class Method Summary collapse

Class Method Details

.connection_optionsObject



31
32
33
34
35
36
# File 'lib/excess_flow/redis_connection.rb', line 31

def connection_options
  {
    url: redis_url,
    sentinels: sentinels
  }.delete_if { |_k, v| v.nil? || v.empty? }
end

.connection_poolObject



25
26
27
28
29
# File 'lib/excess_flow/redis_connection.rb', line 25

def connection_pool
  @connection_pool = ConnectionPool.new(connection_pool_options) do
    Redis.new(connection_options)
  end
end

.connection_pool_optionsObject



38
39
40
41
42
43
# File 'lib/excess_flow/redis_connection.rb', line 38

def connection_pool_options
  {
    size: pool_size,
    timeout: connection_timeout
  }
end

.connection_timeoutObject



45
46
47
# File 'lib/excess_flow/redis_connection.rb', line 45

def connection_timeout
  ExcessFlow.configuration.connection_timeout
end

.pool_sizeObject



49
50
51
# File 'lib/excess_flow/redis_connection.rb', line 49

def pool_size
  ExcessFlow.configuration.connection_pool
end

.redis_urlObject



53
54
55
# File 'lib/excess_flow/redis_connection.rb', line 53

def redis_url
  ExcessFlow.configuration.redis_url
end

.sentinelsObject



57
58
59
# File 'lib/excess_flow/redis_connection.rb', line 57

def sentinels
  ExcessFlow.configuration.sentinels
end