def parse_options(options)
      @zk, @zkservers = options.values_at(:zk, :zkservers)
      if [@zk, @zkservers].all? || [@zk, @zkservers].none?
        raise ArgumentError, 'must specify :zk or :zkservers'
      end

      @root_znode = options.fetch(:znode_path, Util::DEFAULT_ROOT_ZNODE_PATH)
      @namespace = options[:namespace]
      @password = options[:password]
      @db = options[:db]
      @retry = options.fetch(:retry_failure, true)
      @max_retries = @retry ? options.fetch(:max_retries, 3) : 0
      @safe_mode = options.fetch(:safe_mode, true)
      @master_only = options.fetch(:master_only, false)
      @verify_role = options.fetch(:verify_role, true)

      @redis_client_options = Redis::Client::DEFAULTS.keys.each_with_object({}) do |key, hash| 
        hash[key] = options[key]
      end
    end
def parse_options(options)
      @zk, @zkservers = options.values_at(:zk, :zkservers)
      if [@zk, @zkservers].all? || [@zk, @zkservers].none?
        raise ArgumentError, 'must specify :zk or :zkservers'
      end

      @root_znode = options.fetch(:znode_path, Util::DEFAULT_ROOT_ZNODE_PATH)
      @namespace = options[:namespace]
      @password = options[:password]
      @db = options[:db]
      @retry = options.fetch(:retry_failure, true)
      @max_retries = @retry ? options.fetch(:max_retries, 3) : 0
      @safe_mode = options.fetch(:safe_mode, true)
      @master_only = options.fetch(:master_only, false)
      @verify_role = options.fetch(:verify_role, true)

      @redis_client_options = Redis::Client::DEFAULTS.keys.each_with_object({}) do |key, hash| 
        hash[key] = options[key]
      end
    end
Parses the configuration operations.

 @param [Hash] options the configuration options