Nebulex v1.2.2 Nebulex.Adapter behaviour View Source
This module specifies the adapter API that a Cache adapter is required to implement.
Link to this section Summary
Callbacks
The callback invoked in case the adapter needs to inject code.
Deletes a single object from cache.
Returns the expiry timestamp for the given key, if the timeout ttl
(in seconds) is successfully updated.
Flushes the cache.
Retrieves a single object from cache.
Returns a map with the objects for all specified keys. For every key that does not hold a value or does not exist, that key is simply ignored. Because of this, the operation never fails.
Returns whether the given key exists in cache.
Initializes the adapter supervision tree by returning the children
Returns the information associated with attr for the given key,
or returns nil if key doesn't exist.
Sets the given object under key into the cache.
Sets the given objects, replacing existing ones, just as regular set.
Returns the total number of cached entries.
Returns and removes the object with key key in the cache.
Updates (increment or decrement) the counter mapped to the given key.
Link to this section Types
Specs
cache() :: Nebulex.Cache.t()
Specs
key() :: Nebulex.Cache.key()
Specs
object() :: Nebulex.Object.t()
Specs
opts() :: Nebulex.Cache.opts()
Specs
t() :: module()
Link to this section Callbacks
Specs
__before_compile__(term(), env :: Macro.Env.t()) :: Macro.t()
The callback invoked in case the adapter needs to inject code.
Specs
Deletes a single object from cache.
Specs
Returns the expiry timestamp for the given key, if the timeout ttl
(in seconds) is successfully updated.
If key doesn't exist, nil is returned.
Specs
flush(cache()) :: :ok
Flushes the cache.
Specs
Retrieves a single object from cache.
See Nebulex.Cache.get/2.
Specs
Returns a map with the objects for all specified keys. For every key that does not hold a value or does not exist, that key is simply ignored. Because of this, the operation never fails.
Specs
Returns whether the given key exists in cache.
Specs
init(opts()) :: {:ok, [:supervisor.child_spec() | {module(), term()} | module()]}
Initializes the adapter supervision tree by returning the children
Specs
Returns the information associated with attr for the given key,
or returns nil if key doesn't exist.
Specs
Sets the given object under key into the cache.
If the object already exists, it is overwritten. Any previous time to live
associated with the key is discarded on successful set operation.
Returns true if an object with key key is found and successfully inserted,
otherwise false.
Options
Besides the "Shared options" section in Nebulex.Cache documentation,
it accepts:
:action- It may be one of:add,:replace,:set(the default). See the "Actions" section for more information.
Actions
The :action option supports the following values:
:add- Only set thekeyif it does not already exist. If it does,falseis returned.:replace- Alters the object stored underkey, but only if the object already exists into the cache.:set- Setkeyto hold the givenobject(default).
See Nebulex.Cache.set/3, Nebulex.Cache.add/3, Nebulex.Cache.replace/3.
Specs
Sets the given objects, replacing existing ones, just as regular set.
Returns :ok if the all objects were successfully set, otherwise
{:error, failed_keys}, where failed_keys contains the keys that
could not be set.
Ideally, this operation should be atomic, so all given keys are set at once. But it depends purely on the adapter's implementation and the backend used internally by the adapter. Hence, it is recommended to checkout the adapter's documentation.
Specs
Returns the total number of cached entries.
See Nebulex.Cache.size/0.
Specs
Returns and removes the object with key key in the cache.
See Nebulex.Cache.take/2.
Specs
Updates (increment or decrement) the counter mapped to the given key.