memcachex v0.4.1 Memcache.Connection

This module provides low level API to connect and execute commands on a memcached server.

Summary

Functions

Closes the connection to the memcached server

Executes the command with the given args

Executes the list of quiet commands

Starts a connection to memcached server

Functions

cleanup(state)
close(pid)
close(GenServer.server) :: {:ok}

Closes the connection to the memcached server.

Example

iex> {:ok, pid} = Memcache.Connection.start_link()
iex> Memcache.Connection.close(pid)
{:ok}
execute(pid, command, args, options \\ [])
execute(GenServer.server, atom, [binary], Keyword.t) :: Memcache.result

Executes the command with the given args

options

  • :cas - (boolean) returns the CAS value associated with the data. This value will be either in second or third position of the returned tuple depending on the command. Defaults to false

Example

iex> {:ok, pid} = Memcache.Connection.start_link()
iex> {:ok} = Memcache.Connection.execute(pid, :SET, ["hello", "world"])
iex> {:ok, "world"} = Memcache.Connection.execute(pid, :GET, ["hello"])
{:ok, "world"}
execute_quiet(pid, commands)
execute_quiet(GenServer.server, [{atom, [binary]} | {atom, [binary], Keyword.t}]) ::
  {:ok, [Memcache.result]} |
  {:error, atom}

Executes the list of quiet commands

Example

iex> {:ok, pid} = Memcache.Connection.start_link()
iex> {:ok, [{:ok}, {:ok}]} = Memcache.Connection.execute_quiet(pid, [{:SETQ, ["1", "one"]}, {:SETQ, ["2", "two"]}])
iex> Memcache.Connection.execute_quiet(pid, [{:GETQ, ["1"]}, {:GETQ, ["2"]}])
{:ok, [{:ok, "one"}, {:ok, "two"}]}
start_link(connection_options \\ [], options \\ [])

Starts a connection to memcached server.

The actual TCP connection to the memcached server is established asynchronously after the start_link/2 returns.

This function accepts two option lists. The first one specifies the options to connect to the memcached server. The second option is passed directly to the underlying GenServer.start_link/3, so it can be used to create named process.

Memcachex automatically tries to reconnect in case of tcp connection failures. It starts with a :backoff_initial wait time and increases the wait time exponentially on each successive failures until it reaches the :backoff_max. After that, it waits for :backoff_max after each failure.

Connection Options

  • :hostname - (string) hostname of the memcached server. Defaults to "localhost"

  • :port - (integer) port on which the memcached server is listening. Defaults to 11211

  • :backoff_initial - (integer) initial backoff (in milliseconds) to be used in case of connection failure. Defaults to 500

  • :backoff_max - (integer) maximum allowed interval between two connection attempt. Defaults to 30_000

  • :auth - (tuple) only plain authentication method is supported. It is specified using the following format {:plain, "username", "password"}. Defaults to nil.

Example

{:ok, pid} = Memcache.Connection.start_link()