Préparation de l'environnement et des dépendances
Avant de commencer, assurez-vous qu'aucune instance résiduelle n'est présente et que le compilateur C est disponible sur le système.
# Vérification des processus existants
[admin@srv ~]$ ps aux | grep -i redis
# Désinstallation si nécessaire
[admin@srv ~]$ sudo yum erase redis -y
# Vérification de la présence de GCC
[admin@srv ~]$ gcc -v
Si GCC n'est pas installé et que le serveur ne dispose pas d'accès à internet, vous devez transférer manuellement les paquets RPM de GCC (récupérés depuis les miroirs officiels CentOS) et les installer localement :
[admin@srv ~]$ cd /tmp/gcc-packages
[admin@srv gcc-packages]$ sudo rpm -Uvh *.rpm --nodeps --force
Architecture des répertoires et compilation du code source
Transférez l'archive source de Redis sur le serveur. Nous allons créer une structure de dossiers optimisée pour isoler l'installation.
[admin@srv ~]$ sudo mkdir -p /opt/redis-standalone/{bin,etc,var,log,run}
[admin@srv ~]$ cd /opt/redis-standalone
[admin@srv redis-standalone]$ sudo tar -xzf /tmp/redis-6.2.6.tar.gz
Lancez la compilation. Si vous rencontrez une erreur liée à l'absence de jemalloc, forcez l'utilisation de l'allocateur standard libc.
[admin@srv redis-standalone]$ cd redis-6.2.6
[admin@srv redis-6.2.6]$ make -j$(nproc) MALLOC=libc
[admin@srv redis-6.2.6]$ sudo make install PREFIX=/opt/redis-standalone
Configuration du service
Copiez le fichier de configuration par défaut et adaptez-le à notre nouvelle architceture.
[admin@srv redis-6.2.6]$ sudo cp redis.conf /opt/redis-standalone/etc/redis-main.conf
[admin@srv redis-6.2.6]$ sudo vi /opt/redis-standalone/etc/redis-main.conf
Modifications clés à apporter dans redis-main.conf :
bind 0.0.0.0(ou l'adresse IP spécifique du serveur)daemonize yespidfile /opt/redis-standalone/run/redis.pidlogfile /opt/redis-standalone/log/redis-server.logdir /opt/redis-standalone/varrequirepass VotreMotDePasseRobuste
Démarrage et tests de fonctionnement
Exécutez le binaire en pointant vers le nouveau fichier de configuration.
[admin@srv ~]$ /opt/redis-standalone/bin/redis-server /opt/redis-standalone/etc/redis-main.conf
# Vérification du processus
[admin@srv ~]$ ps -eo pid,comm | grep redis
# Connexion via l'interface en ligne de commande
[admin@srv ~]$ /opt/redis-standalone/bin/redis-cli -p 6379
127.0.0.1:6379> AUTH VotreMotDePasseRobuste
OK
127.0.0.1:6379> SET status "operational"
OK
127.0.0.1:6379> GET status
"operational"
Intégration au PATH système
Pour éviter de saisir le chemin absolu à chaque fois, ajoutez le répertoire bin aux variables d'environnement de l'utilisateur.
[admin@srv ~]$ echo 'export PATH=/opt/redis-standalone/bin:$PATH' >> ~/.bashrc
[admin@srv ~]$ source ~/.bashrc
Ouverture des ports réseau
Configurez firewalld pour autoriser le trafic entrant sur le port d'écoute de la base de données.
[admin@srv ~]$ sudo systemctl enable --now firewalld
[admin@srv ~]$ sudo firewall-cmd --permanent --add-port=6379/tcp
[admin@srv ~]$ sudo firewall-cmd --reload
[admin@srv ~]$ sudo firewall-cmd --list-ports
Création du service Systemd
Pour garantir le démarrage automatique et une gestion propre des processus par le système d'exploitation, créez un fichier unit.
[admin@srv ~]$ sudo vi /etc/systemd/system/redis-custom.service
Insérez la configuration suivante :
[Unit]
Description=Advanced key-value store - Custom Instance
After=network.target
[Service]
Type=forking
ExecStart=/opt/redis-standalone/bin/redis-server /opt/redis-standalone/etc/redis-main.conf
ExecStop=/opt/redis-standalone/bin/redis-cli -p 6379 -a VotreMotDePasseRobuste shutdown
Restart=always
User=root
Group=root
[Install]
WantedBy=multi-user.target
Activez et démarrez le service :
[admin@srv ~]$ sudo systemctl daemon-reload
[admin@srv ~]$ sudo systemctl enable redis-custom
[admin@srv ~]$ sudo systemctl start redis-custom
[admin@srv ~]$ sudo systemctl status redis-custom