Redis Open Source (redis)
Base de données en mémoire pour les caches, sessions, files et limites de débit. Autonome, répliquée, Sentinel ou Redis Cluster.
Généré depuis catalog/services/redis.yaml : ne pas modifier à la main.
Résumé
| Version | 7.2.17 |
| Usage | installer et configurer |
| Couche | infrastructure (présentée à part) |
| Catégorie | Plateformes de données |
| Méthodes d'installation | podman, package |
| Connexion externe | redis |
| Réservé au bac à sable | non |
Licence
| Identifiant SPDX | BSD-3-Clause |
| Politique de licence | exception de licence |
| Exception de licence | LEX-002 (en attente de la décision du client) |
| Remarque de licence | Redis 7.2 est la dernière branche sous BSD-3-Clause : la 7.4 est passée sous RSALv2 ou SSPLv1 et Redis 8 ajoute l'AGPLv3. La plateforme reste en 7.2.x, sans modification, comme service réseau séparé (ADR-0101 ; LEX-002 trace la licence et la version). |
| Composant de la plateforme | redis |
Paquets et artefacts
Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.
| Type | Paquet | Version | Licence | Détails |
|---|---|---|---|---|
| image de conteneur | docker.io/library/redis | 7.2.17 | BSD-3-Clause | clé d'image redis, utilisée par redis, sentinel, condensé sha256:0312984fbfeb2ff1d4382ecef45b50e7d65478a6a58cf12ce28d6de7a4142e45 |
| paquet système | redis | version du dépôt configuré | à confirmer | famille RHEL (dnf) |
| paquet système | redis-server | version du dépôt configuré | à confirmer | famille Debian (apt) |
| paquet système | redis-tools | version du dépôt configuré | à confirmer | famille Debian (apt) |
Les images sont épinglées par étiquette dans le descripteur, et par condensé (digest) quand le descripteur en déclare un (le bundle hors ligne refuse alors une image téléchargée qui ne le porte pas) ; le condensé est enregistré dans le miroir du Manager à l'import du bundle hors ligne, et chaque téléchargement ou chargement est vérifié par rapport à lui.
Systèmes et architectures pris en charge
| Méthode | Systèmes d'exploitation | Architectures |
|---|---|---|
podman | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64, aarch64 (non restreintes par le descripteur) |
package | famille RHEL (dnf), famille Debian (apt) | x86_64, aarch64 (non restreintes par le descripteur) |
Systèmes hôtes certifiés : 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). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.
Prérequis
Hôte
- au moins 1024 Mo de mémoire (bloquant,
memory).
Réseau et ports
| Composant | Nom du port | Port | Ouvert dans le pare-feu de l'hôte |
|---|---|---|---|
redis | redis | 6379/tcp | oui |
redis | bus | 16379/tcp | oui |
sentinel | sentinel | 26379/tcp | oui |
Paramètres du noyau
| Paramètre | Valeur |
|---|---|
net.core.somaxconn | 1024 |
vm.overcommit_memory | 1 |
Services et connexions nécessaires
Ce service n'a aucune dépendance.
Méthodes et modes d'installation
| Méthode | Défaut | Ce que la méthode utilise |
|---|---|---|
podman | oui | les images de conteneur du descripteur, exécutées par Podman sous systemd |
package | - | les paquets système du descripteur, installés par le gestionnaire de paquets de l'hôte |
Composants
| Composant | Type | Méthodes d'installation | Ports |
|---|---|---|---|
Serveur Redis (redis) | maître | podman, package | 6379/tcp, 16379/tcp |
Redis Sentinel (sentinel) | maître | podman, package | 26379/tcp |
Autonome (standalone) (par défaut)
Un seul serveur Redis.
Ce que le mode déploie :
| Composant | Placement |
|---|---|
redis | min 1, max 1 |
sentinel | non utilisé |
Primaire et réplicas (replication)
Le premier hôte est le primaire, chaque autre hôte le réplique (tout nombre d'hôtes à partir de 2).
Ce que le mode déploie :
| Composant | Placement |
|---|---|
redis | min 2, recommandé 3 |
sentinel | non utilisé |
Sentinel (sentinel)
Primaire et réplicas surveillés par un nombre impair de Sentinel pour la bascule automatique.
Ce que le mode déploie :
| Composant | Placement |
|---|---|
redis | min 2, recommandé 3 |
sentinel | min 3, nombre impair, recommandé 3 |
Redis Cluster, un réplica (cluster)
Cluster partitionné, un réplica par primaire (au moins 6 nœuds, nombre pair).
Ce que le mode déploie :
| Composant | Placement |
|---|---|
redis | min 6, multiple de 2, recommandé 6 |
sentinel | non utilisé |
Redis Cluster, deux réplicas (cluster_ha)
Cluster partitionné, deux réplicas par primaire (au moins 9 nœuds, multiple de 3).
Ce que le mode déploie :
| Composant | Placement |
|---|---|
redis | min 9, multiple de 3, recommandé 9 |
sentinel | non utilisé |
Installer ce service
L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.
-
Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.
-
Choisissez le service. À l'étape Service, sélectionnez Redis Open Source. La carte affiche la licence
BSD-3-Clause. Choisissez la Méthode parmipodman,package(par défautpodman). Pour enregistrer à la place un serviceredisexistant de votre organisation, activez Utiliser un service externe existant. -
Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode :
standalone(par défaut),replication,sentinel,cluster,cluster_ha. Chaque mode déploie les composants listés dans Méthodes et modes d'installation. Avec plusieurs composants, placez chacun sur ses hôtes dans Répartition des composants (Proposer un placement propose un placement qui respecte les cardinalités). -
Liaisons. Ce service n'a aucune dépendance : l'étape Liaisons n'a rien à lier.
-
Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.
-
Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.
-
Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services.
Haute disponibilité
| Cluster | natif (native) |
| Haute disponibilité | natif (native) |
| Bascule | natif (native) |
| Réplication | natif (native) |
| Quorum | Sentinel (sentinel) |
| Découverte | statique (static) |
| Point d'entrée | découverte par le client (client-discovery) |
| Documentation officielle | https://redis.io/docs/latest/operate/oss_and_stack/management/scaling/ |
| Références | https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/ |
| Paramètre TLS entre pairs | tls_enabled |
| Commande d'état du cluster | cluster_info |
Topologie par mode
| Modes | Niveau le plus haut du catalogue | Répartition | Composant du quorum | Domaines de panne | Description |
|---|---|---|---|---|---|
standalone | autonome (standalone) | unique (single) | - | 1 | Un serveur Redis. |
replication | ha (ha) | actif-passif (active-passive) | - | 2 | Un primary et des réplicas asynchrones, sans bascule automatique. |
sentinel | ha (ha) | actif-passif (active-passive) | sentinel | 3 | Primary et réplicas surveillés par un nombre impair de Sentinels qui promeuvent un réplica. |
cluster | cluster (cluster) | actif-actif (active-active) | - | 3 | Cluster shardé, un réplica par primary ; les primaries votent la bascule. |
cluster_ha | cluster (cluster) | actif-actif (active-active) | - | 3 | Cluster shardé, deux réplicas par primary. |
Remarques
- Le mode réplication n'a pas de bascule automatique : utiliser sentinel pour cela. Les clients doivent supporter Sentinel ou Redis Cluster ; vérifiez-le pour chaque consommateur avant de choisir le mode cluster.
Paramètres de configuration
Réseau
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Port (port) | port | 6379 | - | non | non | non | Port client (port TLS quand TLS est activé). |
Port du bus de cluster (cluster_bus_port) | port | 16379 | - | non | non | non | Port du bus Redis Cluster entre les nœuds. (cluster, cluster_ha) |
Mémoire
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Mémoire maximale (maxmemory_mb) | int | 1024 | min 64, MB | non | non | non | Limite mémoire du jeu de données, environ la moitié de la mémoire de l'hôte. (recommandé clamp(round(host.memory_mb * 0.5), 256, 65536)) |
Politique d'éviction (maxmemory_policy) | enum | allkeys-lru | noeviction, allkeys-lru, allkeys-lfu, volatile-lru, volatile-lfu, volatile-ttl | non | non | non | Ce que Redis évince quand la limite mémoire est atteinte. |
Persistance
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Fichier en ajout seul (appendonly) | bool | true | - | non | non | non | Journaliser chaque écriture dans l'AOF pour la durabilité. |
Sécurité
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Mot de passe (password) | password | généré | - | non | oui | non | Mot de passe de l'utilisateur par défaut, utilisé aussi entre réplicas. |
TLS (tls_enabled) | bool | false | - | non | non | non | Servir les clients et la réplication en TLS avec le certificat de l'autorité de la console. |
Haute disponibilité
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Port Sentinel (sentinel_port) | port | 26379 | - | non | non | non | Port des processus Sentinel. |
Quorum Sentinel (sentinel_quorum) | int | 2 | min 1 | non | non | non | Nombre de Sentinel qui doivent s'accorder avant une bascule (majorité). (recommandé floor(len(topology.sentinel) / 2) + 1 if 'sentinel' in topology else 2) |
Nom du primaire (master_name) | string | navin | ^[a-z][a-z0-9-]{0,40}$ | non | non | non | Nom du primaire surveillé par Sentinel. |
Points d'accès
| Point d'accès | Schéma | Composant | Port | Chemin | Paramètre TLS | Paramètres de liaison | Secrets de liaison | Commande de provisionnement |
|---|---|---|---|---|---|---|---|---|
redis | redis | redis | 6379 (port) | - | tls_enabled | username, database, tls, mode, master_name, sentinels | password | - |
Fichiers de configuration client
Fichiers rendus pour le téléchargement de la configuration client :
redis.env(client.env.j2)
Commandes
| Commande | Composant | Cible | Description |
|---|---|---|---|
Informations du serveur (info) | redis | tous les hôtes | Exécute INFO sur chaque serveur Redis (rôle, mémoire, réplication). |
État de la réplication (replication_info) | redis | tous les hôtes | Affiche le rôle de réplication et les réplicas de chaque serveur. |
Créer le cluster (cluster_create) | redis | premier hôte | Répartit les slots et les réplicas sur tous les nœuds de la topologie (une fois, modes Redis Cluster). (demande une confirmation) |
État du cluster (cluster_info) | redis | premier hôte | Exécute CLUSTER INFO et CLUSTER NODES. |
Contrôles de santé
Vivacité (par instance)
| Composant | Contrôle | Détails |
|---|---|---|
redis | TCP {{ host.ip or '127.0.0.1' }}:{{ config.port }} | 30 tentatives ; intervalle 1 s ; délai 3 s |
sentinel | TCP {{ host.ip or '127.0.0.1' }}:{{ config.sentinel_port }} | - |
Disponibilité (contrôle du service)
| Contrôle | Détails |
|---|---|
TCP {{ host.ip or '127.0.0.1' }}:{{ config.port }} | - |
Contrôles préalables
| Contrôle | Type | Signification | Sévérité | Composants |
|---|---|---|---|---|
memory | memory_mb {"min": 1024} | au moins 1024 Mo de mémoire | bloquant | tous les composants |
redis_port_free | port_free {"param": "port"} | port 6379 libre sur l'hôte | bloquant | redis |
Sauvegarde et restauration
SAVE puis copie du fichier RDB du premier serveur (P5C-008, moteur redis_rdb_backup). Modes autonome et réplication ; les modes cluster sont refusés par le script de sauvegarde et Sentinel par celui de restauration, chacun avec un message explicite.
| Format | redis-rdb |
| Composant | redis |
| Fichiers | {{ backup.dir }}/dump.rdb |
| Test de restauration | non |
| Instances arrêtées pendant la restauration | oui |
Désinstallation
Chemins supprimés quand les données sont purgées : {{ paths.data }}, {{ paths.log }}.
Documentation amont
- Site : https://redis.io
- Sources : https://github.com/redis/redis
- Haute disponibilité : https://redis.io/docs/latest/operate/oss_and_stack/management/scaling/
- Haute disponibilité : https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/