Définition de base de Redis
Redis est un logiciel open‑source écrit en ANSI C, un système de stockage / base de données clé‑valeur accessible sur le réseau, fonctionnant en mémoire et avec persistance des données. Il propose des API client pour de multiples langages de programmation.
- Il appartient aux bases de données NoSQL non relationnelles ;
- Il appartient à la même famille que Memcached, mais il est plus complet et comble beaucoup de ses limites ;
- Il est souvent utilisé comme solution de cache complémentaire aux bases relationnelles comme MySQL.
Types de données pris en charge
String: type chaîne de caractèresList: liste doublement chaînéeSet: collection non ordonnéezset(sorted set): collection triéeHash: structure de hachage (semblable à Map)
Memcached ne gère que le type chaîne, c’est l’une des différences les plus marquantes entre les deux outils.
Fonctionnalités
- Prise en charge multi‑langages
Les SDK officiels existent pour Java, C/C++, C#, PHP, JavaScript, Python, Ruby, Perl et bien d’autres langages pour une intégration facile. - Synchronisation maître‑esclave
La réplication maître‑esclave permet les sauvegardes distantes et la séparation lecture‑écriture pour améliorer la disponibilité. - Haute performance
Les données résident principalement en mémoire, les lectures et écritures sont très rapides, il est largement utilisé comme cache distribué. - Persistance des données
Les données en mémoire peuvent être enregistrées sur disque, elles ne sont pas totalement perdues au redémarrage (Memcached n’a pas de persistance par défaut).
Contexte
Au début, le projet Redis était financé, développé et maintenu par VMware.
Nous allons illustrer l’usage de Redis avec un exemple simple de client Redis WinForm(C#), un programme d’introduction montrant comment connecter C# à Redis.
- Définir des couples clé‑valeur
- Récupérer une valeur à partir d’une clé
Comparaison rapide Redis vs Memcached
| Fonctionnalité | Redis | Memcached |
|---|---|---|
| Types de données | 5 structures de base | Chaîne uniquement |
| Persistance | Prend en charge RDB/AOF | Pas de persistance |
| Réplication maître‑esclave | Supporté | Pas de support natif |
| Éviction mémoire | Plusieurs politiques d’éviction | Éviction LRU |
Présentation
Next: Installation