FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Découvrez Redis avec PHP : Guide complet pour un stockage ultra-rapide des données

Redis, le moteur de stockage en mémoire ultra-performant, est indispensable pour tout développeur. Il permet des opérations à plus de 32 millions de requêtes par seconde, idéal en complément de bases comme MySQL, PostgreSQL ou MongoDB.

Plongeons dans les bases pour accélérer vos applications web.

Avantages et inconvénients de Redis

Redis excelle grâce à son stockage en RAM : accès fulgurants sans E/S disque. Simple d'utilisation, il supporte le clustering (Redis Cluster) et 8 types de données pour une grande flexibilité.

Son principal inconvénient ? La limite de taille liée à la RAM (typiquement 2-4 Go). Redis complète donc les bases persistantes, parfait pour le cache, les données temporaires ou les accès fréquents.

Installation de Redis

Sur Ubuntu ou distributions apt-get :

sudo apt-get install redis-server

Vérifiez l'installation :

redis-cli --version

Connectez-vous :

redis-cli

Invite : 127.0.0.1:6379>

Commandes sur les chaînes (Strings)

Chaque entrée a une clé (chaîne non vide). Exemples :

127.0.0.1:6379> set full_name "John Doe"
OK
127.0.0.1:6379> set units 5
OK

Lister les clés :

127.0.0.1:6379> keys *
1) "full_name"
2) "units"

Récupérer :

127.0.0.1:6379> get full_name
"John Doe"
127.0.0.1:6379> get units
"5"

Supprimer :

127.0.0.1:6379> del full_name
(integer) 1

Incrémenter :

127.0.0.1:6379> incrby units 2
(integer) 7

Commandes sur les listes

Listes ordonnées, doublons autorisés. Ajout :

127.0.0.1:6379> lpush colors blue
(integer) 1
127.0.0.1:6379> rpush colors red yellow green
(integer) 4

Afficher (0 à -1 = tout) :

127.0.0.1:6379> lrange colors 0 -1
1) "blue"
2) "red"
3) "yellow"
4) "green"

Extraire :

127.0.0.1:6379> lpop colors
"blue"
127.0.0.1:6379> rpop colors
"green"

Longueur :

127.0.0.1:6379> llen colors
(integer) 2

Supprimer (1 occurrence de 'green') :

127.0.0.1:6379> lrem colors 1 green
(integer) 1

Commandes sur les hachages (Hashes)

Stockez plusieurs paires clé-valeur sous une clé :

127.0.0.1:6379> hset user:581 full_name "Jane Doe"
(integer) 1
127.0.0.1:6379> hset user:581 points 500
(integer) 1

Multiples paires :

127.0.0.1:6379> hmset user:581 email jane@domain.com gender F
OK

Toutes les valeurs :

127.0.0.1:6379> hgetall user:581
1) "full_name"
2) "Jane Doe"
3) "points"
4) "500"
5) "email"
6) "jane@domain.com"
7) "gender"
8) "F"

Une valeur :

127.0.0.1:6379> hget user:581 email
"jane@domain.com"

Incrémenter :

127.0.0.1:6379> hincrby user:581 points 20
(integer) 520

Supprimer paire :

127.0.0.1:6379> hdel user:581 gender
(integer) 1

Supprimer hash :

127.0.0.1:6379> del user:581
(integer) 1

Expiration des clés

Expirez une clé entière après X secondes :

127.0.0.1:6379> set full_name "John Doe"
OK
127.0.0.1:6379> expire full_name 10
(integer) 1

Après 10s :

127.0.0.1:6379> get full_name
(nil)

Connexion Redis avec PHP

Installez l'extension :

sudo apt-get install php-redis

Redémarrez PHP-FPM. Exemple :

<?php
// Connexion
$redis = new Redis();
try {
    $redis->connect('127.0.0.1', 6379);
} catch (RedisException $e) {
    die('Connexion Redis échouée: ' . $e->getMessage());
}

// Chaîne
$redis->set('country', 'Canada');
echo 'Pays: ' . $redis->get('country') . "\n";

// Hash
$profile = [
    'username' => 'mike',
    'full_name' => 'Mike Smith',
    'email' => 'mike@domain.com',
    'country' => 'Australia'
];
$redis->hmset('user:188', $profile);
print_r($redis->hGetAll('user:188'));

echo 'Email: ' . $redis->hget('user:188', 'email') . "\n";

// Expiration
$redis->expire('user:188', 15);
?>

Ce code démontre connexion, chaînes, hachages et expiration via l'API OOP de PhpRedis.

Vous êtes prêt à démarrer !

Félicitations ! Vous maîtrisez les bases de Redis et son intégration PHP. Pour approfondir, consultez la documentation Redis sur les types de données.

[]