get_server_for_key (MemCache)

    # File lib/active_support/vendor/memcache-client-1.7.4/memcache.rb, line 642
      def get_server_for_key(key, options = {})
        raise ArgumentError, "illegal character in key #{key.inspect}" if
          key =~ /\s/
        raise ArgumentError, "key too long #{key.inspect}" if key.length > 250
        raise MemCacheError, "No servers available" if @servers.empty?
        return @servers.first if @servers.length == 1

        hkey = hash_for(key)

        20.times do |try|
          entryidx = Continuum.binary_search(@continuum, hkey)
          server = @continuum[entryidx].server
          return server if server.alive?
          break unless failover
          hkey = hash_for "#{try}#{key}"
        end

        raise MemCacheError, "No servers available"
      end