Redis est un magasin de structure de données en mémoire gratuit et open source utilisé comme courtier de messages et cache de base de données. Vous pouvez l'utiliser avec des solutions de streaming telles qu'Apache Kafka pour traiter et analyser des données en temps réel avec une latence inférieure à la milliseconde. Redis prend en charge de nombreuses structures de données, notamment les hachages, les chaînes, les hyperloglogs, les bitmaps, les index géospatiaux, les listes triées, etc. Il est populaire en raison de sa large prise en charge linguistique, de sa haute disponibilité et de son partitionnement automatique.
Dans cet article, nous vous montrerons comment installer et configurer Redis 6 sur Debian 11.
Prérequis
- Un serveur exécutant Debian 11.
- Un mot de passe root est configuré sur le serveur.
Installer Redis 6 sur Debian 11
La dernière version de Redis n'est pas incluse dans le référentiel par défaut de Debian 11. Vous devrez donc l'installer à partir du référentiel officiel Redis.
Tout d'abord, installez toutes les dépendances requises à l'aide de la commande suivante :
apt-get install wget curl gnupg -y
Ensuite, téléchargez et ajoutez la clé GPG à l'aide de la commande suivante :
curl https://packages.redis.io/gpg | apt-key add -
Ensuite, ajoutez le référentiel officiel Redis à l'aide de la commande suivante :
echo "deb https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list
Ensuite, mettez à jour le cache du référentiel et installez Redis à l'aide de la commande suivante :
apt-get update -y
apt-get install redis-server -y
Une fois Redis installé, vérifiez l'installation de Redis à l'aide de la commande suivante :
apt-cache policy redis-server
Vous devriez voir les informations du package Redis dans la sortie suivante :
redis-server: Installed: 6:6.2.6-3rl1~bullseye1 Candidate: 6:6.2.6-3rl1~bullseye1 Version table: *** 6:6.2.6-3rl1~bullseye1 500 500 https://packages.redis.io/deb bullseye/main amd64 Packages 100 /var/lib/dpkg/status 6:6.0.16-3rl1~bullseye1 500 500 https://packages.redis.io/deb bullseye/main amd64 Packages 5:6.0.16-1+deb11u1 500 500 http://security.debian.org/debian-security bullseye-security/updates/main amd64 Packages 5:6.0.15-1 500 500 http://debian.gtisc.gatech.edu/debian bullseye/main amd64 Packages
Gérer le service Redis
Vous pouvez gérer le service Redis à l'aide de systemd.
Pour démarrer le service Redis, exécutez la commande suivante :
systemctl start redis-server
Pour permettre au service Redis de démarrer au redémarrage du système, exécutez la commande suivante :
systemctl enable redis-server
Pour vérifier l'état du service Redis, exécutez la commande suivante :
systemctl status redis-server
Vous devriez voir le résultat suivant :
? redis-server.service - Advanced key-value store Loaded: loaded (/lib/systemd/system/redis-server.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2021-11-28 07:15:00 UTC; 19s ago Docs: http://redis.io/documentation, man:redis-server(1) Main PID: 9079 (redis-server) Status: "Ready to accept connections" Tasks: 5 (limit: 4679) Memory: 7.2M CPU: 82ms CGroup: /system.slice/redis-server.service ??9079 /usr/bin/redis-server 127.0.0.1:6379 Nov 28 07:15:00 debian11 systemd[1]: Starting Advanced key-value store... Nov 28 07:15:00 debian11 systemd[1]: Started Advanced key-value store.
Par défaut, Redis écoute sur le port 6379. Vous pouvez le vérifier avec la commande suivante :
ss -antpl | grep redis
Vous obtiendrez le résultat suivant :
LISTEN 0 511 127.0.0.1:6379 0.0.0.0:* users:(("redis-server",pid=9079,fd=6)) LISTEN 0 511 [::1]:6379 [::]:* users:(("redis-server",pid=9079,fd=7))
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer Redis
Par défaut, Redis écoute l'hôte local. Si vous souhaitez connecter Redis à partir de l'hôte distant, vous devrez autoriser Redis pour la connexion à distance.
Pour cela, éditez le fichier de configuration Redis à l'aide de votre éditeur préféré :
nano /etc/redis/redis.conf
Commentez la ligne suivante :
#bind 127.0.0.1 -::1
Ensuite, définissez le mot de passe Redis comme indiqué ci-dessous :
requirepass securepassword
Ensuite, modifiez la ligne suivante :
appendonly yes appendfilename "appendonly.aof"
Enregistrez et fermez le fichier puis redémarrez le service Redis pour appliquer les modifications :
systemctl restart redis-server
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Se connecter à l'instance Redis
Vous pouvez utiliser l'utilitaire de ligne de commande redis-cli pour connecter le serveur Redis à partir de la machine locale ou distante.
Exécutez la commande suivante pour vous connecter à l'instance Redis :
redis-cli
Une fois connecté, vous obtiendrez le shell suivant :
127.0.0.1:6379>
Maintenant, authentifiez-vous Redis en utilisant le mot de passe comme indiqué ci-dessous :
127.0.0.1:6379> auth securepassword
Ensuite, vérifiez le serveur à l'aide de la commande suivante :
127.0.0.1:6379> INFO Server
Vous obtiendrez les informations suivantes :
# Server redis_version:6.2.6 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:557672d61c1e18ba redis_mode:standalone os:Linux 5.10.0-8-amd64 x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:atomic-builtin gcc_version:10.2.1 process_id:10828 process_supervised:systemd run_id:b5ce185f0d4783dd3ddab8cabd38b0ee0263637b tcp_port:6379 server_time_usec:1638085497530445 uptime_in_seconds:32 uptime_in_days:0 hz:10 configured_hz:10 lru_clock:10695545 executable:/usr/bin/redis-server config_file:/etc/redis/redis.conf io_threads_active:0
Maintenant, quittez l'instance Redis à l'aide de la commande suivante :
127.0.0.1:6379> exit
Il est recommandé de comparer Redis pour tester ses performances.
Exécutez la commande suivante pour tester Redis avec 10 connexions parallèles, pour un total de 2 000 requêtes :
redis-benchmark -h 127.0.0.1 -p 6379 -n 2000 -c 10 -a securepassword
Vous obtiendrez le résultat suivant :
====== PING_INLINE ====== 2000 requests completed in 0.05 seconds 10 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: no Latency by percentile distribution: 0.000% <= 0.071 milliseconds (cumulative count 1) 50.000% <= 0.159 milliseconds (cumulative count 1090) 75.000% <= 0.207 milliseconds (cumulative count 1507) 87.500% <= 0.303 milliseconds (cumulative count 1769) 93.750% <= 0.359 milliseconds (cumulative count 1880) 96.875% <= 0.415 milliseconds (cumulative count 1942) 98.438% <= 0.455 milliseconds (cumulative count 1971) 99.219% <= 0.495 milliseconds (cumulative count 1985) 99.609% <= 0.791 milliseconds (cumulative count 1993) 99.805% <= 0.919 milliseconds (cumulative count 1997) 99.902% <= 1.031 milliseconds (cumulative count 1999) 99.951% <= 1.103 milliseconds (cumulative count 2000) 100.000% <= 1.103 milliseconds (cumulative count 2000) Summary: throughput summary: 35714.29 requests per second latency summary (msec): avg min p50 p95 p99 max 0.239 0.096 0.231 0.343 0.439 0.727
Pour plus d'options de ligne de commande, exécutez la commande suivante :
redis-benchmark --help
Conclusion
Dans le post ci-dessus, nous avons expliqué comment installer et configurer Redis 6 sur le serveur Debian 11. Vous pouvez désormais implémenter Redis dans un environnement de production et l'utiliser comme courtier de messages ou pour mettre en cache des données en mémoire pour une récupération plus rapide. N'hésitez pas à me demander si vous avez des questions.