Module: PooledRedis
- Defined in:
- lib/pooled_redis.rb,
lib/pooled_redis/version.rb
Constant Summary collapse
- VERSION =
'0.1.1'
Class Method Summary collapse
Instance Method Summary collapse
- #redis ⇒ Object
-
#redis_config ⇒ Object
Override this method unless using Rails.
- #redis_pool ⇒ Object
- #redis_pool_config ⇒ Object
Class Method Details
.gem_version ⇒ Object
4 5 6 |
# File 'lib/pooled_redis/version.rb', line 4 def self.gem_version Gem::Version.new VERSION end |
.setup_rails_cache(app) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/pooled_redis.rb', line 54 def setup_rails_cache(app) # We need to use initializer to be able to access # Rails.configuration.database_configuration. app.initializer :configure_cache, before: :initialize_cache, group: :all do cache_config = Rails.configuration. database_configuration[Rails.env]['cache'].try!(:with_indifferent_access) adapter = cache_config.try!(:delete, :adapter).try!(:to_sym) next unless adapter if adapter == :redis_store # Workaround to support `:db` option: pool_config ||= { pool: cache_config.delete(:pool) || 5, timeout: cache_config.delete(:timeout) || 5, } cache_config = { pool: ConnectionPool.new(pool_config) { Redis::Store.new(cache_config) } } end app.config.cache_store = adapter, cache_config end end |
Instance Method Details
#redis ⇒ Object
49 50 51 |
# File 'lib/pooled_redis.rb', line 49 def redis @redis ||= redis_pool.simple_connection end |
#redis_config ⇒ Object
Override this method unless using Rails.
30 31 32 33 34 35 36 |
# File 'lib/pooled_redis.rb', line 30 def redis_config @redis_config = begin config = ActiveRecord::Base.connection_config[:redis].with_indifferent_access config[:logger] = Rails.logger if config.delete(:debug) config end end |
#redis_pool ⇒ Object
45 46 47 |
# File 'lib/pooled_redis.rb', line 45 def redis_pool @redis_pool ||= ConnectionPool.new(redis_pool_config) { Redis.new(redis_config) } end |
#redis_pool_config ⇒ Object
38 39 40 41 42 43 |
# File 'lib/pooled_redis.rb', line 38 def redis_pool_config @redis_pool_config ||= { pool: redis_config.delete(:pool) || 5, timeout: redis_config.delete(:timeout) || 5, } end |