Redis::Directory

Redis::Directory assumes a Redis installation running on a default port and database 0 that will contain connection information for various other Redis databases. For example, if you were using a Redis database to store the content of cached pages, and this was running on a cluster of two Redis instances, with multiple applications connecting partitioned by database, then your connection might look like this:

require "redis"
require "redis/distributed"

# The ACME Corp database is #27
cache = Redis::Distributed.new %w( redis://redis.example:4400/27 redis://redis.example:4401/27 )

Redis::Directory uses a centralized Redis database to store the connection information so you don’t have to remember “magic numbers” for each client/database mapping, and can easily update port-numbers, hostnames and cluster-members as necessary. The same connection with Redis::Directory would look like this:

require "redis_directory"

cache = Redis::Directory.new("redis.example").get("cache", "acme")