# `RpcLoadBalancer.LoadBalancer.CounterCache`
[🔗](https://github.com/MikaAK/rpc_load_balancer/blob/main/lib/rpc_load_balancer/load_balancer/counter_cache.ex#L1)

Shared atomic counters for slot-based round-robin and
per-node connection tracking across all load balancers.

# `adapter_options`

# `cache_adapter`

# `cache_name`

# `child_spec`

# `decrement`

Atomically decrements the counter for the given key by `step` (default 1).

# `decrement_node`

```elixir
@spec decrement_node(atom(), node()) :: :ok
```

# `delete`

# `erase_node_counter`

```elixir
@spec erase_node_counter(atom(), node()) :: :ok
```

# `get`

# `get_and_increment`

```elixir
@spec get_and_increment(non_neg_integer()) :: non_neg_integer()
```

# `get_node_count`

```elixir
@spec get_node_count(atom(), node()) :: non_neg_integer()
```

# `get_or_create`

# `increment`

Atomically increments the counter for the given key by `step` (default 1).

# `increment_node`

```elixir
@spec increment_node(atom(), node()) :: :ok
```

# `put`

# `register`

```elixir
@spec register(atom(), pos_integer()) :: non_neg_integer()
```

# `register_node`

```elixir
@spec register_node(atom(), node()) :: non_neg_integer()
```

# `reset_counter`

```elixir
@spec reset_counter(non_neg_integer()) :: :ok
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
