Memcache.Connection (memcachex v0.5.7) View Source
This module provides low level API to connect and execute commands on a memcached server.
Link to this section 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.
Link to this section Functions
Specs
close(GenServer.server()) :: {:ok}
Closes the connection to the memcached server.
Examples
iex> {:ok, pid} = Memcache.Connection.start_link()
iex> Memcache.Connection.close(pid)
{:ok}
Specs
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 tofalse
Examples
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"}
Specs
execute_quiet(GenServer.server(), [ {atom(), [binary()]} | {atom(), [binary()], Keyword.t()} ]) :: {:ok, [Memcache.result()]} | {:error, atom()}
Executes the list of quiet commands
Examples
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"}]}
Specs
start_link(Keyword.t(), Keyword.t()) :: GenServer.on_start()
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 to11211
:backoff_initial
- (integer) initial backoff (in milliseconds) to be used in case of connection failure. Defaults to500
:backoff_max
- (integer) maximum allowed interval between two connection attempt. Defaults to30_000
:connect_timeout
- (integer) connection timeout (in milliseconds) at which to terminate the connection attempt in case of an unresponsive host. Defaults to :infinity:auth
- (tuple) only plain authentication method is supported. It is specified using the following format{:plain, "username", "password"}
. Defaults tonil
.:ssl_options
- (keyword) SSL options, seehttps://www.erlang.org/doc/man/ssl#type-tls_client_option
.
Examples
{:ok, pid} = Memcache.Connection.start_link()