Aller au contenu

Le système d'exploitation GNU-Linux/Redis

Un livre de Wikilivres.

Redis est comme Memcached, un système de gestion de base de données clef-valeur scalable, très hautes performances. En 2019, il devient plus utilisé que Memcached car il possède plus de fonctionnalités[1]. Par exemple il permet en plus une persistance sur la mémoire morte utile pour les reprises sur panne, autoriser les groupes de paires clé-valeur, et gère mieux le parallélisme[2].

Pour l'installer :

 sudo apt-get install redis-server

Obtenir la version :

redis-server -v
Redis server v=6.2.5 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=19d2f4c94e0b6820
  sudo apt-get install redis

Sur Docker PHP :

 RUN pecl install redis \
    && docker-php-ext-enable redis

Sur WAMP :

  • Télécharger le .dll sur https://pecl.php.net/package/redis
  • L'extraire dans le dossier correspondant à la version de PHP. Ex : bin\php\php8.2.0\ext
  • L'activer dans php.ini.
  • Redémarrer WAMP.

Ensuite on le voit dans phpinfo.

Pour se loguer au serveur Redis :

telnet nom_du_serveur 6379

Les commandes Redis les plus utiles[3] :

  • MONITOR : suivre l'activité du serveur en temps réel.
  • KEYS * : liste des clés.
  • GET : affiche la valeur de la clé en paramètre (ou nil si elle n'existe pas).
  • MGET : affiche les valeurs des clés en paramètre.
  • QUIT : quitter.
  • SET : définit une valeur associée à la clé en paramètre[4].
  • EXPIRE : définit une durée avant expiration pour la clé en paramètre, en secondes.
  • SETEX : SET + EXPIRE[5].
  • DEL : supprimer par le nom complet de la clé.
  • FLUSHALL : vider toute la base de données.

Exemple de reset mémoire depuis le shell :

echo "FLUSHALL" | nc -q 1 localhost 6379

Pour afficher les clés de la base en shell :

redis-cli KEYS '*'

Par défaut, redis-cli pointe sur 127.0.0.1. Pour regarder une autre machine :

redis-cli -h redis.example.com KEYS '*'

Supprimer des clés par leurs noms[6] (exemple de celles qui ont le préfixe "users:") :

 redis-cli KEYS "users:*" | xargs redis-cli DEL

ou :

 redis-cli --scan --pattern users:* | xargs redis-cli DEL

Plusieurs bases

[modifier | modifier le wikicode]

Chaque instance de Redis peut accueillir jusqu'à 16 bases de données[7].

Elles sont accessibles par un suffixe dans leur DSN. Par défaut, redis://localhost:6379 pointe sur la base zéro : redis://localhost/0:6379.