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

* Qu'est-ce qu'un système d'exploitation ?
* Unix et Linux
* Partitionnement du disque
* Installation
** Installer Debian via le réseau
* Utilisateur Unix, l'interface console
** Le login
** Variables d'environnement
** Commandes de base
** L'aide en ligne man
** L'éditeur de texte vi
** Les shells
** La complétion
** Les jokers
** Les répertoires importants
** Redirection des entrées/sorties
** Invoquer un programme en tâche de fond
** Propriétaires et droits d'accès
** Processus
** Locale
* Administration du système
** Configuration du réseau
** Les utilisateurs et groupes
** Le processus d'initialisation
** Les systèmes de fichiers
** Le système virtuel /proc
** Les périphériques /dev
** L'ordonnanceur de travaux cron
** Le backup : tar et gzip
** ghost avec partimage
** sauvegarde de fichiers avec rsync
** Les fichiers journaux syslog
** Installation de nouveaux logiciels
** Le noyau Linux et les modules
** Autres commandes utiles
** Installation RAID1 logiciel + LVM + XFS
** Scripts de surveillance
** Réseaux sans fil
* Administration des services réseaux
** L'outil d'administration Webmin
** telnet
** cURL
** wget
** Le serveur de noms BIND
** Le serveur de configuration réseau DHCP
** Le serveur de shell distant SSH
** Le partage de fichiers Samba
** Le partage de fichiers NFS
** Le serveur d'impression CUPS
** Le serveur de fichiers FTP
** Le serveur Web Apache
** Le serveur Web Nginx
** La base de données MySQL
** La base de données Memcached
** La base de données Redis
** Le serveur de mails Postfix
** Les annuaires LDAP
** La supervision Nagios
* Sécurisation d'un serveur Linux
** Installation d'un service en mode chroot
** Protection avec iptables
* Erreurs connues
* Médiagraphie
* Auteurs
* Qu'est-ce qu'un système d'exploitation ?
* Unix et Linux
* Partitionnement du disque
* Installation
** Installer Debian via le réseau
* Utilisateur Unix, l'interface console
** Le login
** Variables d'environnement
** Commandes de base
** L'aide en ligne man
** L'éditeur de texte vi
** Les shells
** La complétion
** Les jokers
** Les répertoires importants
** Redirection des entrées/sorties
** Invoquer un programme en tâche de fond
** Propriétaires et droits d'accès
** Processus
** Locale
* Administration du système
** Configuration du réseau
** Les utilisateurs et groupes
** Le processus d'initialisation
** Les systèmes de fichiers
** Le système virtuel /proc
** Les périphériques /dev
** L'ordonnanceur de travaux cron
** Le backup : tar et gzip
** ghost avec partimage
** sauvegarde de fichiers avec rsync
** Les fichiers journaux syslog
** Installation de nouveaux logiciels
** Le noyau Linux et les modules
** Autres commandes utiles
** Installation RAID1 logiciel + LVM + XFS
** Scripts de surveillance
** Réseaux sans fil
* Administration des services réseaux
** L'outil d'administration Webmin
** telnet
** cURL
** wget
** Le serveur de noms BIND
** Le serveur de configuration réseau DHCP
** Le serveur de shell distant SSH
** Le partage de fichiers Samba
** Le partage de fichiers NFS
** Le serveur d'impression CUPS
** Le serveur de fichiers FTP
** Le serveur Web Apache
** Le serveur Web Nginx
** La base de données MySQL
** La base de données Memcached
** La base de données Redis
** Le serveur de mails Postfix
** Les annuaires LDAP
** La supervision Nagios
* Sécurisation d'un serveur Linux
** Installation d'un service en mode chroot
** Protection avec iptables
* Erreurs connues
* Médiagraphie
* Auteurs
[ Modifier le sommaire ]

## Installation

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. 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.

### Serveur

Pour l'installer :
Obtenir la version :

### Client

Sur Docker PHP :
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

Pour se loguer au serveur Redis :
Les commandes Redis les plus utiles :

### Lecture

* 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

* SET : définit une valeur associée à la clé en paramètre.
* EXPIRE : définit une durée avant expiration pour la clé en paramètre, en secondes.
* SETEX : SET + EXPIRE.
* 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 :

## redis-cli

Pour afficher les clés de la base en shell :
Par défaut, redis-cli pointe sur 127.0.0.1. Pour regarder une autre machine :
Supprimer des clés par leurs noms (exemple de celles qui ont le préfixe "users:") :
ou :

## Plusieurs bases

Chaque instance de Redis peut accueillir jusqu'à 16 bases de données.
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

* ↑ 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/

## Voir aussi

* Programmation PHP/Redis