View Source Nebulex.Caching.SimpleKeyGenerator (Nebulex v2.5.2)
Default key generator implementation.
It implementats a simple algorithm:
- If no params are given, return
0
. - If only one param is given, return that param as key.
- If more than one param is given, return a key computed from the hashes
of all parameters (
:erlang.phash2(args)
).
Based on the default key generation in Spring Cache Abstraction.
This implementation aims to cover those simple/generic scenarios where the key generated based on the arguments only, fulfill the needs. For example:
defmodule MyApp.Users do
use Nebulex.Caching
alias MayApp.Cache
@decorate cacheable(cache: Cache)
def get_user(id) do
# logic for retrieving a user...
end
@decorate cache_evict(cache: Cache)
def delete_user(id) do
# logic for deleting a user...
end
end
The key generator will generate the same key for both, cacheable and evict functions; since it is generated based on the arguments only.