memcachir v3.3.0 Memcachir

Module with a friendly API for memcached servers.

It provides connection pooling, and cluster support.

Example

{:ok} = Memcachir.set("hello", "world")
{:ok, "world"} = Memcachir.get("hello")

Link to this section Summary

Functions

Removes the item with the specified key. Returns {:ok, :deleted}

Accepts a memcache operation closure, a grouped map of %{node => args} and executes the operations in parallel for all given nodes. The result is of form {:ok, enumerable} where enumerable is the merged result of all operations.

Removes all the items from the server. Returns {:ok}.

Gets the value associated with the key. Returns {:error, "Key not found"} if the given key doesn't exist.

increments the key by value

List all currently registered node names, like [:"localhost:11211"].

Accepts a list of mcached keys, and returns either {:ok, %{key => val}} for each found key or {:error, any}

Accepts a list of {key, val} pairs and returns the store results for each node touched

Multi-set with cas option

Sets the key to value. Valid option are: ttl: The time in seconds that the value will be stored.

Called when an application is started.

Link to this section Functions

Removes the item with the specified key. Returns {:ok, :deleted}

Link to this function

exec_parallel(fun, grouped, args \\ [], merge_fun \\ &Map.merge/2)

Accepts a memcache operation closure, a grouped map of %{node => args} and executes the operations in parallel for all given nodes. The result is of form {:ok, enumerable} where enumerable is the merged result of all operations.

Additionally, you can pass args to supply memcache ops to each of the executions and merge_fun (a 2-arity func) which configures how the result is merged into the final result set. For instance, mget/2 returns a map of key, val pairs in its result, and utilizes Map.merge/2.

Link to this function

flush(opts \\ [])

Removes all the items from the server. Returns {:ok}.

Link to this function

get(key, opts \\ [])

Gets the value associated with the key. Returns {:error, "Key not found"} if the given key doesn't exist.

Link to this function

incr(key, value \\ 1, opts \\ [])

increments the key by value

List all currently registered node names, like [:"localhost:11211"].

Link to this function

mget(keys, opts \\ [])

Accepts a list of mcached keys, and returns either {:ok, %{key => val}} for each found key or {:error, any}

Link to this function

mset(commands, opts \\ [])

Accepts a list of {key, val} pairs and returns the store results for each node touched

Link to this function

mset_cas(commands, opts \\ [])

Multi-set with cas option

Link to this function

set(key, value, opts \\ [])

Sets the key to value. Valid option are: ttl: The time in seconds that the value will be stored.

Link to this function

start(type, args)

Called when an application is started.

This function is called when an application is started using Application.start/2 (and functions on top of that, such as Application.ensure_started/2). This function should start the top-level process of the application (which should be the top supervisor of the application's supervision tree if the application follows the OTP design principles around supervision).

start_type defines how the application is started:

  • :normal - used if the startup is a normal startup or if the application is distributed and is started on the current node because of a failover from another node and the application specification key :start_phases is :undefined.
  • {:takeover, node} - used if the application is distributed and is started on the current node because of a failover on the node node.
  • {:failover, node} - used if the application is distributed and is started on the current node because of a failover on node node, and the application specification key :start_phases is not :undefined.

start_args are the arguments passed to the application in the :mod specification key (e.g., mod: {MyApp, [:my_args]}).

This function should either return {:ok, pid} or {:ok, pid, state} if startup is successful. pid should be the PID of the top supervisor. state can be an arbitrary term, and if omitted will default to []; if the application is later stopped, state is passed to the stop/1 callback (see the documentation for the c:stop/1 callback for more information).

use Application provides no default implementation for the start/2 callback.

Callback implementation for Application.start/2.