Redis

Stockage de données en mémoire pour cache, sessions et analytics temps réel - opérations clé-valeur ultra-rapides

TL;DR

Quoi : Stockage de structures de données en mémoire - cache, base de données, courtier de messages.

Pourquoi : Lectures/écritures ultra-rapides, API simple, structures de données polyvalentes.

Quick Start

Installer :

# macOS
brew install redis
brew services start redis

# Ubuntu/Debian
sudo apt install redis-server
sudo systemctl start redis

# Docker
docker run -d --name redis -p 6379:6379 redis:7

Se connecter :

redis-cli

# Remote
redis-cli -h hostname -p 6379 -a password

Opérations de base :

# String
SET name "Alice"
GET name

# With expiration (seconds)
SET session "abc123" EX 3600

# Check TTL
TTL session

# Delete
DEL name

Cheatsheet

CommandeDescription
SET key valueDéfinir une valeur string
GET keyObtenir une valeur string
DEL keySupprimer une clé
EXISTS keyVérifier si la clé existe
EXPIRE key secondsDéfinir l’expiration
TTL keyObtenir le TTL restant
KEYS patternTrouver des clés (utiliser SCAN en prod)
FLUSHDBSupprimer toutes les clés
INFOInformations serveur

Structures de données :

# List
LPUSH mylist "a" "b" "c"
LRANGE mylist 0 -1

# Set
SADD myset "a" "b" "c"
SMEMBERS myset

# Hash
HSET user:1 name "Alice" age 30
HGETALL user:1

# Sorted Set
ZADD leaderboard 100 "player1" 200 "player2"
ZRANGE leaderboard 0 -1 WITHSCORES

Gotchas

Connection refused

# Check if Redis is running
redis-cli ping  # Should return PONG

# Check service status
sudo systemctl status redis

# Check if binding to localhost only
# In redis.conf: bind 127.0.0.1

NOAUTH Authentication required

# Connect with password
redis-cli -a yourpassword

# Or after connecting
AUTH yourpassword

# Set password in redis.conf
requirepass yourpassword

Problèmes de mémoire

# Check memory usage
redis-cli INFO memory

# Set max memory
# redis.conf: maxmemory 256mb
# redis.conf: maxmemory-policy allkeys-lru

Ne pas utiliser KEYS en production

# KEYS blocks the server - use SCAN instead
SCAN 0 MATCH "user:*" COUNT 100

Next Steps