Présentation de Redis et ses fonctionnalités

Introduction aux bases de données NoSQL

Les bases de données NoSQL (« Not Only SQL ») désignent des systèmes non relationnels. Leur popularité a augmenté depuis 2009, répondant aux besoins des sites web dynamiques à grande échelle.

Pourquoi choisir NoSQL ?

Les bases de données traditionnelles montrent leurs limites avec les sites web massivement fréquentés, où la gestion des requêtes devient complexe. Les solutions NoSQL offrent une meilleure flexibilité et performance dans ces cas.

Classification des bases NoSQL

1. Stockage clé-valeur


# Exemple:
- Clé : "user:1000"
- Valeur : {nom: "Jean", age: 30}

2. Stockage en colonnes


# Exemple:
- Clé : "users"
- Colonne : "nom" => "Jean"
- Colonne : "age" => 30

3. Bases documentaires


# Exemple JSON :
{
  "nom": "Jean",
  "age": 30,
  "adresse": {
    "ville": "Paris",
    "code_postal": "75000"
  }
}

4. Graphes

Modèles flexibles pour représenter des relations complexes.

Cas d'utilisation de NoSQL

  • Systèmes nécessitant une grande flexibilité
  • Exigences élevées de performance
  • Moins besoin de cohérence forte

Qu'est-ce que Redis ?

Redis est un magasin de structures de données en mémoire, utilisé comme base de données, cache ou broker de messages.

Caractéristiques de Redis

  • Base de données clé/valeur haute performance
  • Support divers types de données
  • Persistante
  • Architecture simple

Installation de Redis


# Installation sous CentOS
yum install gcc -y
make MALLOC=libc
make install PREFIX=/usr/redis

Commandes Redis

Opérations sur les bases de données


FLUSHDB - Efface la base courante
FLUSHALL - Efface toutes les bases

Gestion des clés

Commande Description
DEL Supprime une ou plusieurs clés
EXISTS Vérifie l'existence d'une clé
EXPIRE Définit une durée de vie pour une clé

Type String

Commande Description
SET Définit une valeur
GET Récupère une valeur

Type List

Commande Description
LPUSH Ajoute un élément au début de la liste
RPUSH Ajoute un élément à la fin de la liste

Type Set

Commande Description
SADD Ajoute un élément à un ensemble
SMEMBERS Liste tous les éléments d'un ensemble

Type ZSet

Commande Description
ZADD Ajoute un élément à un ensemble trié
ZRANGE Liste les éléments par score

Type Hash

Commande Description
HSET Définit une paire clé/valeur dans un hash
HGET Récupère une valeur dans un hash

Mécanismes de persistance

Deux méthodes principales sont proposées :

  • Snapshot (point de sauvegarde)
  • AOF (Appand Only File)

Utilisation avec Java


<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>3.1.0</version>
</dependency>

Intégration Spring Boot


@Autowired
private StringRedisTemplate stringRedisTemplate;

Replication Master-Slave

Permet la réplication des données pour redondance.

Mécanisme Sentinel

Automatise la détection de pannes et le basculement vers un esclave.

Cluster Redis

Supporte jusqu'à 16384 slots distribués entre les nœuds.

Gestion des sessions distribuées

Spring Session peut gérer les sessions via Redis.

Étiquettes: NoSQL Redis persistence JavaIntegration SpringBoot

Publié le 13 août à 04h05