Redis, pou REmote DIctionary Server est un système de gestion de base de données clef-valeur scalable, très hautes performances, écrit en C et distribué sous licence BSD. Il fait partie de la mouvance NoSQL et vise à fournir les performances les plus élevées possibles.
Installation de Redis on Debian 9
Les packages Redis sont disponibles dans les dépôts :
# apt install redis-server |
Relancer ou démarrer Redis
# systemctl enable redis-server.service |
Installer l’extention PHP pour Redis
Pour que PHP puisse communiquer avec le serveur Redis il faut installer l’extension php-redis
# apt install php-redis |
Test Connection
À l’aide de l’outil redis-cli
on va pouvoir vérifier la connexion entre le serveur Redis et le cli. Lancer le terminal redis-cli et tapez ping, il devrait répondre PONG, signe que la connexion est établie.
# redis-cli |
Configurer l’accès distant Redis
Par défaut, il n’est pas possible d’accéder à Redis à distance. On peut uniquement se connecter à Redis à partir de 127.0.0.1 (hôte local).
Pour que Redis accepte les connexions à distance il faut configurer le fichier /etc/redis/redis.conf
# vim /etc/redis/redis.conf |
Modifier la ligne bind 127.0.0.1
en bind 0.0.0.0
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES |
Relancer le service de Redis
# systemctl restart redis-server |
Vérifiez que redis écoute sur le port 6379
# ss -an | grep 6379 |
Il faudra ensuite ouvrir le port TCP 6379 sur le firewall.
Securiser Redis
Par défaut Redis permet la connexion sans mot de passe pour n’importe quel utilisateur. Pour activer l’authentification avec mot de passe il faut dans un premier temps le générer avec sha256sum
:
# echo "your-redis-password" | sha256sum |
Ouvrir ensuite le fichier de configuration pour y mettre le hash.
# vim /etc/redis/redis.conf |
Et à la ligne requirepass foobared le remplacer par le hash obtenu :
requirepass a453f41f929a3297289b68788b91d1454d91c71613416d14020c5206cc35579e |
NOTE : Dans la configation le fait de mettre le hash ne fonctionnait pas, j’ai dû mettre le psswd en clair dans le fichier de configuration.
requirepass MonPassSecure123+++ |
Relancer ensuite le serveur Redis :
# systemctl restart redis |
Vous devriez pouvoir vous reconnecter.
redis-cli |
Problèmes rencontrés
Il est possible d’avoir cette erreur de connexion :
(error) NOAUTH Authentication required. |
Il faut être authentifié sur le serveur Redis avant d’exécuter toutes commandes dans le shell Redis :
127.0.0.1:6379>auth your-redis-password |
Se connecter à distance à une base Redis
Pour vous connecter à distance :
# redis-cli -h 11.22.44.88 (-p yyyy) |
Documentation
https://fr.wikipedia.org/wiki/Redis
https://tecadmin.net/install-redis-on-debian-9-stretch/
https://linuxize.com/post/how-to-install-and-configure-redis-on-debian-9/
https://medium.com/@Alibaba_Cloud/how-to-install-and-configure-redis-server-on-debian-9-da45ce289a53