# File lib/active_support/vendor/memcache-client-1.6.5/memcache.rb, line 316
  def add(key, value, expiry = 0, raw = false)
    raise MemCacheError, "Update of readonly cache" if @readonly
    with_server(key) do |server, cache_key|
      value = Marshal.dump value unless raw
      logger.debug { "ADD #{key} to #{server}: #{value ? value.to_s.size : 'nil'}" } if logger
      command = "add #{cache_key} 0 #{expiry} #{value.to_s.size}\r\n#{value}\r\n"

      with_socket_management(server) do |socket|
        socket.write command
        result = socket.gets
        raise_on_error_response! result
        result
      end
    end
  end