# elixir_cache v0.5.1 - API Reference

## Modules

- [Cache.MultiLayer.Coordinator](Cache.MultiLayer.Coordinator.md): Per-node coordinator for cross-node layer coherence in `Cache.MultiLayer`.

- Main
  - [Cache](Cache.md): # ElixirCache
[![Hex version badge](https://img.shields.io/hexpm/v/elixir_cache.svg)](https://hex.pm/packages/elixir_cache)
[![Test](https://github.com/MikaAK/elixir_cache/actions/workflows/test.yml/badge.svg)](https://github.com/MikaAK/elixir_cache/actions/workflows/test.yml)
[![Credo](https://github.com/MikaAK/elixir_cache/actions/workflows/credo.yml/badge.svg)](https://github.com/MikaAK/elixir_cache/actions/workflows/credo.yml)
[![Dialyzer](https://github.com/MikaAK/elixir_cache/actions/workflows/dialyzer.yml/badge.svg)](https://github.com/MikaAK/elixir_cache/actions/workflows/dialyzer.yml)
[![Coverage](https://github.com/MikaAK/elixir_cache/actions/workflows/test.yml/badge.svg)](https://github.com/MikaAK/elixir_cache/actions/workflows/test.yml)
  - [Cache.Metrics](Cache.Metrics.md): Add the following metrics for elixir_cache into [prometheus_telmetery](https://hexdocs.pm/prometheus_telemetry),
this module will only be included if the library is included

- Adapters
  - [Cache.Agent](Cache.Agent.md): This module is the Agent adapter. Very lightweight use only

  - [Cache.ConCache](Cache.ConCache.md): ETS Based cache https://github.com/sasa1977/con_cache
  - [Cache.Counter](Cache.Counter.md): Atomic integer counter adapter backed by Erlang's `:counters` module.
  - [Cache.DETS](Cache.DETS.md): DETS adapter so that we can use dets as a cache
  - [Cache.ETS](Cache.ETS.md): ETS (Erlang Term Storage) adapter for high-performance in-memory caching.
  - [Cache.PersistentTerm](Cache.PersistentTerm.md): `:persistent_term` adapter for storing rarely-written, frequently-read cached values.
  - [Cache.Redis](Cache.Redis.md): Redis adapter for distributed caching with ElixirCache.

- Strategies
  - [Cache.HashRing](Cache.HashRing.md): Consistent hash ring strategy adapter using `libring`.
  - [Cache.MultiLayer](Cache.MultiLayer.md): Multi-layer caching strategy that cascades through multiple cache layers.
  - [Cache.RefreshAhead](Cache.RefreshAhead.md): Refresh-ahead caching strategy that proactively refreshes values before they expire.
  - [Cache.Strategy](Cache.Strategy.md): Behaviour for strategy-based cache adapters.

- Test Utils
  - [Cache.CaseTemplate](Cache.CaseTemplate.md): A reusable ExUnit case template for applications using `elixir_cache`.
  - [Cache.Sandbox](Cache.Sandbox.md): Sandbox adapter for isolated testing of applications using ElixirCache.
  - [Cache.SandboxRegistry](Cache.SandboxRegistry.md): This module is used to start the sandbox registry and register caches in test mode

