Le système d'exploitation GNU-Linux/Redis
Installation
[modifier | modifier le wikicode]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].
Serveur
[modifier | modifier le wikicode]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
Client
[modifier | modifier le wikicode]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.
Commandes
[modifier | modifier le wikicode]Pour se loguer au serveur Redis :
telnet nom_du_serveur 6379
Les commandes Redis les plus utiles[3] :
Lecture
[modifier | modifier le wikicode]- 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.
Écriture
[modifier | modifier le wikicode]- 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
redis-cli
[modifier | modifier le wikicode]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
.
Références
[modifier | modifier le wikicode]- ↑ https://aws.amazon.com/fr/elasticache/redis-vs-memcached/
- ↑ https://www.disko.fr/reflexions/technique/redis-vs-memcached/
- ↑ https://redis.io/commands
- ↑ https://redis.io/commands/set/
- ↑ https://redis.io/commands/setex/
- ↑ https://rdbtools.com/blog/redis-delete-keys-matching-pattern-using-scan/
- ↑ https://www.mikeperham.com/2015/09/24/storing-data-with-redis/