class ActiveSupport::Cache::RedisCacheStore
def build_redis(redis: nil, url: nil, **redis_options) # :nodoc:
:url Array -> Redis::Distributed.new([{ url: … }, { url: … }, …])
:url String -> Redis.new(url: …)
:redis Object -> options[:redis]
:redis Proc -> options[:redis].call
Option Class Result
string, and multiple :url strings.
Handles four options: :redis block, :redis instance, single :url
Factory method to create a new Redis instance.
def build_redis(redis: nil, url: nil, **redis_options) # :nodoc: urls = Array(url) if redis.is_a?(Proc) redis.call elsif redis redis elsif urls.size > 1 build_redis_distributed_client(urls: urls, **redis_options) elsif urls.empty? build_redis_client(**redis_options) else build_redis_client(url: urls.first, **redis_options) end end