---
title: "Redis"
---

> Documentation Index
> Fetch the complete documentation index at: https://openarkstudio.github.io/arknet/llms.txt
> Use this file to discover all available pages before exploring further.

# Redis

arknet provides a native, header-only single-node Redis client and connection pool. Commands and replies use arknet types; no Boost.Redis or other Redis driver is required. Both Boost.Asio and Standalone Asio are supported. TLS adds OpenSSL through `ARKNET_ENABLE_SSL`.

| Area | API and behavior |
| --- | --- |
| Connections | `redis::client`, `redis::tls_client`; explicit host and port, authentication and database selection |
| Protocol | RESP2 and RESP3; RESP3 `HELLO` negotiation by default |
| Commands | Binary-safe argument arrays, single commands and ordered pipelines |
| Replies | Owned typed values, nested collections, server errors and RESP3 attributes |
| Pushes | A separate push callback; pushes do not consume command response slots |
| Pools | `redis::pool`, `redis::tls_pool`; bounded connections and pending acquisitions, exclusive move-only leases |
| Failure handling | Deadlines, cancellation, queue limits and explicit unknown write outcomes; no automatic replay |
| TLS | Certificate and host verification, optional client certificates for mTLS |

## Get started

- [Client and pool examples](/arknet/features/redis/usage): compile and run complete programs against your Redis endpoint.
- [Configuration and limits](/arknet/features/redis/configuration): authentication, typed replies, cancellation and lease isolation.
- [Performance](/arknet/features/redis/performance): workload dimensions, units and the independent C++ benchmark.

The library owns IO contexts and threads. A standalone client uses one context and thread; clients created by a pool share that pool's context and thread. Applications submit commands without starting or stopping those contexts themselves.

## Scope

This module targets a single configured Redis endpoint. It does not implement Redis Cluster redirection, Sentinel discovery, Pub/Sub subscriptions, replication or `MONITOR`. Commands that suppress replies or require a different response model are rejected. RESP3 push delivery is distinct from a Pub/Sub subscription API.

Connections are not automatically reconnected and commands are never replayed. `close()` is a terminal asynchronous request; create a new client or pool to start again. See [shutdown and callback ownership](/arknet/features/redis/configuration#execution-and-shutdown) before integrating with application teardown.

Source: https://openarkstudio.github.io/arknet/features/redis/index.mdx
