Redis

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
127.0.0.1:6379> ping
PONG

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
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 0.0.0.0

Relancer le service de Redis

# systemctl restart redis-server

Vérifiez que redis écoute sur le port 6379

# ss -an | grep 6379
tcp LISTEN 0 128 *: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
a453f41f929a3297289b68788b91d1454d91c71613416d14020c5206cc35579e -

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 
127.0.0.1:6379> ping

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
OK

Se connecter à distance à une base Redis

Pour vous connecter à distance :

# redis-cli -h 11.22.44.88 (-p yyyy)
11.22.44.88:6379> ping
(error) NOAUTH Authentication required.
11.22.44.88:6379> auth +MonPassSecure123+++
OK

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

> Partager <