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.
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.
Sur Ubuntu ou distributions apt-get :
sudo apt-get install redis-serverVérifiez l'installation :
redis-cli --versionConnectez-vous :
redis-cliInvite : 127.0.0.1:6379>
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
OKLister 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) 1Incrémenter :
127.0.0.1:6379> incrby units 2
(integer) 7Listes 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) 4Afficher (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) 2Supprimer (1 occurrence de 'green') :
127.0.0.1:6379> lrem colors 1 green
(integer) 1Stockez 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) 1Multiples paires :
127.0.0.1:6379> hmset user:581 email jane@domain.com gender F
OKToutes 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) 520Supprimer paire :
127.0.0.1:6379> hdel user:581 gender
(integer) 1Supprimer hash :
127.0.0.1:6379> del user:581
(integer) 1Expirez 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) 1Après 10s :
127.0.0.1:6379> get full_name
(nil)Installez l'extension :
sudo apt-get install php-redisRedé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.
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.
[]