Skip to main content

Redis Open Source (redis)

In-memory data store for caches, sessions, queues and rate limits. Standalone, replicated, Sentinel or Redis Cluster.

Generated from catalog/services/redis.yaml: do not edit by hand.

Summary​

Version7.2.17
Useinstall and configure
Layerinfrastructure (shown apart)
CategoryData platforms
Installation methodspodman, package
External connectionredis
Sandbox onlyno

Licence​

SPDX identifierBSD-3-Clause
Licence policylicence exception
Licence exceptionLEX-002 (pending, awaiting the client)
Licence noteRedis 7.2 is the last line under BSD-3-Clause: 7.4 moved to RSALv2 or SSPLv1 and Redis 8 adds AGPLv3. The platform stays on 7.2.x, unmodified, as a separate network service (ADR-0101; LEX-002 traces the licence and the version).
Platform componentredis

Packages and artifacts​

A package the project of the service publishes (its image, its binary archive, its Python or OS package) carries the licence of the service; a third-party package carries the licence written on its row, read from the official upstream metadata.

KindPackageVersionLicenceDetails
container imagedocker.io/library/redis7.2.17BSD-3-Clauseimage key redis, used by redis, sentinel, digest sha256:0312984fbfeb2ff1d4382ecef45b50e7d65478a6a58cf12ce28d6de7a4142e45
OS packageredisversion of the configured repositoryto confirmRHEL family (dnf)
OS packageredis-serverversion of the configured repositoryto confirmDebian family (apt)
OS packageredis-toolsversion of the configured repositoryto confirmDebian family (apt)

Images are pinned by tag in the descriptor, and by digest when the descriptor declares one (the offline bundle then refuses a pulled image that does not carry it); the digest is recorded in the mirror of the Manager when the offline bundle is imported, and every pull or load is checked against it.

Supported systems and architectures​

MethodOperating systemsArchitectures
podmanRHEL family (dnf), Debian family (apt), Arch Linux (pacman)x86_64, aarch64 (not restricted by the descriptor)
packageRHEL family (dnf), Debian family (apt)x86_64, aarch64 (not restricted by the descriptor)

Certified host systems: RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). The host preflight accepts these systems (other releases of a known family give a warning, end of life releases are refused) and the x86_64 and aarch64 architectures.

Prerequisites​

Host​

  • at least 1024 MB of memory (blocking, memory).

Network and ports​

ComponentPort namePortOpened in the host firewall
redisredis6379/tcpyes
redisbus16379/tcpyes
sentinelsentinel26379/tcpyes

Kernel parameters​

ParameterValue
net.core.somaxconn1024
vm.overcommit_memory1

Services and connections needed​

This service has no dependency.

Installation methods and modes​

MethodDefaultWhat the method uses
podmanyesthe container images of the descriptor, run by Podman under systemd
package-the OS packages of the descriptor, installed by the package manager of the host

Components​

ComponentKindInstallation methodsPorts
Redis server (redis)masterpodman, package6379/tcp, 16379/tcp
Redis Sentinel (sentinel)masterpodman, package26379/tcp

Standalone (standalone) (default)​

One Redis server.

What the mode deploys:

ComponentPlacement
redismin 1, max 1
sentinelnot used

Primary and replicas (replication)​

The first host is the primary, every other host replicates it (any number of hosts from 2).

What the mode deploys:

ComponentPlacement
redismin 2, recommended 3
sentinelnot used

Sentinel (sentinel)​

Primary and replicas watched by an odd number of Sentinels for automatic failover.

What the mode deploys:

ComponentPlacement
redismin 2, recommended 3
sentinelmin 3, odd number, recommended 3

Redis Cluster, one replica (cluster)​

Sharded cluster, one replica per primary (at least 6 nodes, even count).

What the mode deploys:

ComponentPlacement
redismin 6, multiple of 2, recommended 6
sentinelnot used

Redis Cluster, two replicas (cluster_ha)​

Sharded cluster, two replicas per primary (at least 9 nodes, multiple of 3).

What the mode deploys:

ComponentPlacement
redismin 9, multiple of 3, recommended 9
sentinelnot used

Install this service​

The install wizard of the Navin Manager plans, validates and runs the installation; you need the services:install permission on the cluster.

  1. Open the wizard. In Clusters, choose the row action Install services of the target cluster. The wizard opens on its first step, Service.

  2. Choose the service. On the Service step, select Redis Open Source. The card shows the licence BSD-3-Clause. Pick the Method among podman, package (default podman). To register an existing redis service of your organisation instead, turn on Use an existing external service.

  3. Choose the hosts and the mode. On the Hosts step, tick the hosts, then choose the Mode: standalone (default), replication, sentinel, cluster, cluster_ha. Each mode deploys the components listed in Installation methods and modes. With several components, place each one on its hosts in Component placement (Suggest placement proposes a placement that respects the cardinalities).

  4. Bindings. This service has no dependency: the Bindings step has nothing to bind.

  5. Configure. On the Configure step, review the parameters (see Configuration parameters). Passwords left empty with a generated default are generated and sealed by the Manager.

  6. Review and install. On the Install step the Manager validates the plan and shows the installation order; when it says "The plan is valid. Ready to install.", choose Install. A highly available mode is installed only when its HA checks pass.

  7. Verify. The operation ends when the health checks of every instance pass (see Health checks); the service then shows as running in Services.

High availability​

Clusternative (native)
High availabilitynative (native)
Failovernative (native)
Replicationnative (native)
QuorumSentinel (sentinel)
Discoverystatic (static)
Entry pointclient discovery (client-discovery)
Official documentationhttps://redis.io/docs/latest/operate/oss_and_stack/management/scaling/
Referenceshttps://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/
Peer TLS parametertls_enabled
Cluster status commandcluster_info

Topology per mode​

ModesHighest catalog levelDistributionQuorum componentFault domainsDescription
standalonestandalone (standalone)single (single)-1One Redis server.
replicationha (ha)active-passive (active-passive)-2One primary and asynchronous replicas, without automatic failover.
sentinelha (ha)active-passive (active-passive)sentinel3Primary and replicas watched by an odd number of Sentinels which promote a replica.
clustercluster (cluster)active-active (active-active)-3Sharded cluster, one replica per primary; the primaries vote the failover.
cluster_hacluster (cluster)active-active (active-active)-3Sharded cluster, two replicas per primary.

Notes​

  • The replication mode has no automatic failover: use sentinel for it. Clients must support Sentinel or Redis Cluster; check it for every consumer before choosing the cluster mode.

Configuration parameters​

Network​

ParameterTypeDefaultAllowed valuesRequiredSecretRestartDescription
Port (port)port6379-nononoClient port (TLS port when TLS is on).
Cluster bus port (cluster_bus_port)port16379-nononoPort of the Redis Cluster bus between nodes. (cluster, cluster_ha)

Memory​

ParameterTypeDefaultAllowed valuesRequiredSecretRestartDescription
Maximum memory (maxmemory_mb)int1024min 64, MBnononoMemory limit of the data set, about half of the host memory. (recommended clamp(round(host.memory_mb * 0.5), 256, 65536))
Eviction policy (maxmemory_policy)enumallkeys-lrunoeviction, allkeys-lru, allkeys-lfu, volatile-lru, volatile-lfu, volatile-ttlnononoWhat Redis evicts when the memory limit is reached.

Persistence​

ParameterTypeDefaultAllowed valuesRequiredSecretRestartDescription
Append only file (appendonly)booltrue-nononoLog every write to the AOF for durability.

Security​

ParameterTypeDefaultAllowed valuesRequiredSecretRestartDescription
Password (password)passwordgenerated-noyesnoPassword of the default user, also used between replicas.
TLS (tls_enabled)boolfalse-nononoServe clients and replication over TLS with the manager CA certificate.

High availability​

ParameterTypeDefaultAllowed valuesRequiredSecretRestartDescription
Sentinel port (sentinel_port)port26379-nononoPort of the Sentinel processes.
Sentinel quorum (sentinel_quorum)int2min 1nononoSentinels that must agree before a failover (majority). (recommended floor(len(topology.sentinel) / 2) + 1 if 'sentinel' in topology else 2)
Primary name (master_name)stringnavin^[a-z][a-z0-9-]{0,40}$nononoName of the primary monitored by Sentinel.

Endpoints​

EndpointSchemeComponentPortPathTLS parameterBinding parametersBinding secretsProvisioning command
redisredisredis6379 (port)-tls_enabledusername, database, tls, mode, master_name, sentinelspassword-

Client configuration files​

Files rendered for the client configuration download:

  • redis.env (client.env.j2)

Commands​

CommandComponentTargetDescription
Server information (info)redisevery hostRuns INFO on every Redis server (role, memory, replication).
Replication status (replication_info)redisevery hostShows the replication role and the replicas of every server.
Create the cluster (cluster_create)redisfirst hostAssigns the slots and the replicas over every node of the topology (once, Redis Cluster modes). (asks for confirmation)
Cluster state (cluster_info)redisfirst hostRuns CLUSTER INFO and CLUSTER NODES.

Health checks​

Liveness (per instance)​

ComponentCheckDetails
redisTCP {{ host.ip or '127.0.0.1' }}:{{ config.port }}30 retries; interval 1 s; timeout 3 s
sentinelTCP {{ host.ip or '127.0.0.1' }}:{{ config.sentinel_port }}-

Readiness (service check)​

CheckDetails
TCP {{ host.ip or '127.0.0.1' }}:{{ config.port }}-

Preflight checks​

CheckTypeMeaningSeverityComponents
memorymemory_mb {"min": 1024}at least 1024 MB of memoryblockingevery component
redis_port_freeport_free {"param": "port"}port 6379 free on the hostblockingredis

Backup and restore​

SAVE then copy of the RDB file of the first server (P5C-008, engine redis_rdb_backup). Modes standalone and replication; the cluster modes are refused by the backup script and Sentinel by the restore script, each with an explicit message.

Formatredis-rdb
Componentredis
Files{{ backup.dir }}/dump.rdb
Restore testno
Instances stopped for the restoreyes

Uninstall​

Paths removed when the data is purged: {{ paths.data }}, {{ paths.log }}.

Upstream documentation​