X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/29fac6170a308c1ed765d4f7edee94985959225c..c9a111acf47cb5bb2138d1f699253f87d68e53e8:/client-libraries/ruby/lib/dist_redis.rb diff --git a/client-libraries/ruby/lib/dist_redis.rb b/client-libraries/ruby/lib/dist_redis.rb index e79af472..830f8b6d 100644 --- a/client-libraries/ruby/lib/dist_redis.rb +++ b/client-libraries/ruby/lib/dist_redis.rb @@ -2,13 +2,20 @@ require 'redis' require 'hash_ring' class DistRedis attr_reader :ring - def initialize(*servers) - srvs = [] - servers.each do |s| - server, port = s.split(':') - srvs << Redis.new(:host => server, :port => port) + def initialize(opts={}) + hosts = [] + + db = opts[:db] || nil + timeout = opts[:timeout] || nil + + raise Error, "No hosts given" unless opts[:hosts] + + opts[:hosts].each do |h| + host, port = h.split(':') + hosts << Redis.new(:host => host, :port => port, :db => db, :timeout => timeout, :db => db) end - @ring = HashRing.new srvs + + @ring = HashRing.new hosts end def node_for_key(key)