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

Premiers pas avec Redis et PHP pour un stockage rapide des données

Le populaire moteur de stockage Redis est un excellent outil indispensable dans l'arsenal de tout développeur de logiciels. Le moteur de stockage en mémoire permet un stockage et une récupération des données extrêmement rapides, jusqu'à 32 millions de requêtes par seconde, ce qui en fait un complément de choix à tout moteur de base de données majeur.

Plongeons-nous et apprenons comment accélérer nos opérations en ligne.

Redis :avantages et inconvénients

Le plus grand avantage de Redis est qu'il s'agit d'un magasin de données purement en mémoire, ce qui signifie qu'il est extrêmement rapide car la base de données est stockée dans la RAM, donc aucune opération d'E/S de fichier sur le disque dur n'est requise.

D'autres avantages supplémentaires sont sa simplicité, la prise en charge du clustering via Redis-cluster, ainsi que sa prise en charge de huit types de données différents, vous offrant la flexibilité nécessaire pour stocker et gérer vos données selon vos besoins.

Cependant, son plus grand inconvénient est également le fait qu'il s'agit purement d'un magasin de données en mémoire, ce qui entraîne des limitations de taille. Cela dépend de l'infrastructure de votre serveur, mais pour les besoins de cet article et de la simplicité, votre base de données Redis typique ne contiendra qu'un maximum de 2 à 4 Go de données.

Cela signifie que Redis est utilisé pour compléter les moteurs de base de données couramment utilisés tels que mySQL, PostgreSQL et MongoDB, et n'est pas destiné à les remplacer. Les principales utilisations de Redis incluent un cache, des données temporaires/récentes qui expireront dans un court laps de temps ou de petits éléments de données fréquemment consultés.

Comment installer Redis

En supposant que vous utilisez Ubuntu ou une distribution Linux contenant la commande apt-get, pour installer Redis, exécutez simplement la commande suivante dans le terminal :

sudo apt-get install redis-server 

Ensuite, vérifiez que Redis a été installé avec succès. Dans le terminal, exécutez la commande :

redis-cli --version 

Cela devrait imprimer la version de Redis que vous utilisez, et en supposant que c'est le cas, exécutez la commande suivante pour vous connecter à Redis :

redis-cli 

Cela vous donnera une invite Redis non standard dans le terminal, qui ressemble à :

127.0.0.1:6379> 

Commandes de chaîne

Chaque entrée dans Redis est identifiée par une clé, qui peut être n'importe quelle chaîne non blanche que vous souhaitez. Les chaînes ne contiennent qu'une seule valeur et, par exemple, exécutez les commandes suivantes à l'invite Redis pour définir une valeur sur quelques clés.

127.0.0.1:6379> set full_name "John Doe" 
127.0.0.1:6379> définir les unités 5

Vous pouvez maintenant lister toutes les clés actuellement dans la base de données Redis avec la commande keys.

127.0.0.1:6379> clés * 

Cela entraînera l'affichage des deux clés que vous avez définies précédemment, full_name et unités . Vous pouvez voir la valeur de ces clés avec la commande get.

127.0.0.1:6379> obtenir le nom_complet 
"John Doe"
127.0.0.1:6379> obtenir les unités
5

La suppression de clés peut facilement être effectuée avec la commande del.

127.0.0.1:6379> del full_name 

Il est également possible d'incrémenter rapidement un entier avec le hincrby commander. Ce qui suit incrémentera la touche "unités" de 5 à 7.

127.0.0.1:6379> unités incrby 2 

Liste des commandes

Les listes dans Redis sont des tableaux unidimensionnels avec un ordre spécifique et autorisent les éléments en double à différentes positions de la liste. Les éléments peuvent être ajoutés à gauche ou à droite d'une liste avec le lpush et rpousser commandes.

127.0.0.1:6379> lpush couleurs bleu 
127.0.0.1:6379> rpush couleurs rouge jaune vert

Comme vous pouvez le voir dans l'exemple ci-dessus, vous pouvez pousser plusieurs éléments dans une liste au sein d'une seule commande. Nous pouvons maintenant afficher tous les éléments de la liste en utilisant la lrange commande.

127.0.0.1:6379> lrange couleurs 0 -1 

Il y a deux entiers à la fin de la commande, le premier qui définit la position dans la liste à partir de laquelle commencer, et le second est le nombre d'éléments à renvoyer avec -1 signifiant tous les éléments. Le résultat de la commande ci-dessus sera, bleu, rouge, jaune, vert .

Vous pouvez également supprimer des éléments à chaque extrémité d'une liste en utilisant le lpop et rpop commandes.

127.0.0.1:6379> couleurs lpop 
bleu
127.0.0.1:6379> couleurs rpop
vert

Vous pouvez également obtenir le nombre d'éléments dans une liste avec le llen commande.

127.0.0.1:6379> llen couleurs 
(entier) 2

Enfin, vous pouvez supprimer un élément d'une liste via le lrem commande.

127.0.0.1:6379> lrem couleurs 1 vert 
(entier) 1

Le lrem La commande commence par le nom de la liste, suivi du nombre d'occurrences à supprimer et du nom de l'élément à supprimer. Il renverra le nombre d'occurrences trouvées et supprimées de la liste.

Commandes de hachage

L'un des types de données les plus populaires dans Redis est le hachage, qui vous permet de stocker plusieurs paires clé-valeur dans une seule entrée. La clé n'a pas besoin d'exister déjà, et vous définissez des paires clé-valeur à tout moment avec le hset commande.

127.0.0.1:6379> hset user:581 full_name "Jane Doe" 
127.0.0.1:6379> hset utilisateur :581 points 500

Vous pouvez également définir plusieurs paires clé-valeur d'un hachage dans une seule commande à l'aide de hmset commande.

127.0.0.1:6379> hmset user:581 email [email protected] gender F 

Le hachage identifié par la clé user:581 ont maintenant un total de quatre paires clé-valeur, qui peuvent toutes être facilement récupérées avec le hgetall commande.

127.0.0.1:6379> hgetall utilisateur :581 
1) "nom_complet"
2) "Jane Doe"
3) "points"
4) "500"
5) "courriel"
6) "[email protected]"
7) "genre"
8) "F"

Vous pouvez également obtenir la valeur d'une seule paire clé-valeur dans un hachage en utilisant le get commande.

127.0.0.1:6379> hget user:581 email 
"[email protected]"

Pour tous les entiers dans le hachage, vous pouvez les incrémenter d'un montant spécifié avec le code hincrby commande.

127.0.0.1:6379> utilisateur hincrby :581 points 20 
(entier) 520

La valeur des points clé dans le hachage a maintenant été incrémentée de 20 à 520. Une seule paire clé-valeur dans un hachage peut être supprimée avec le hdel commande.

127.0.0.1:6379> hdel user:581 gender 

Alternativement, vous pouvez également supprimer un hachage entièrement, y compris toutes les paires clé-valeur en utilisant le del commande.

127.0.0.1:6379> de l'utilisateur :581 

Expiration des clés Redis

Une autre excellente fonctionnalité de Redis est la possibilité d'expirer automatiquement les clés après un nombre défini de secondes à l'aide de la commande expire commander. Veuillez noter que vous ne pouvez faire expirer que des clés complètes et non des éléments singuliers dans une liste ou un hachage. Par exemple :

127.0.0.1:6379> expire full_name 10 

Cela définira un délai d'expiration de 10 secondes sur le full_name clé que vous avez créée dans la section des chaînes. Après avoir exécuté la commande ci-dessus, attendez 10 secondes puis réessayez de récupérer la valeur de la clé.

127.0.0.1:6379> obtenir le nom complet 
(néant)

Comme prévu, la clé a maintenant expiré, nous obtenons donc null.

Se connecter à Redis avec PHP

Maintenant que vous avez appris les bases du stockage et de la récupération de données avec Redis, il est temps de les connecter à votre logiciel. Tous les langages de programmation ont des modules/extensions pour Redis, mais pour cet exemple, nous utiliserons PHP.

Vous devez d'abord installer l'extension PHP-Redis car elle n'est pas installée par défaut. Dans le terminal, exécutez la commande.

sudo apt-get install php-redis 

Une fois installé, assurez-vous de redémarrer PHP-fpm afin que l'extension soit correctement chargée. Voici du code PHP qui se connecte et s'interface avec Redis.

 // Se connecter à redis 
$conn =nouveau redis();
essayer {
$conn->connect('127.0.0.1', 6379, 5);
} catch (RedisException $e) {
die("Impossible de se connecter à redis");
}
// Définir la chaîne
$conn->set('pays', 'Canada');
// Récupère la chaîne
$value =$conn->get('pays');
echo "Le pays est :$value
" ;
// Définir un profil
$profil =[
'nom d'utilisateur' => 'mike',
'full_name' => 'Mike Smith',
'email' => '[email protected]',
'pays' => 'Australie'
] ;
// Créer un hachage
$conn->hmset('user:188', $profile);
// Récupère toutes les valeurs du hachage du profil
$values ​​=$conn->hgetall('user:188');
print_r($values);
// Récupère uniquement l'adresse e-mail
$email =$conn->hget('user:188', 'email');
echo "E-mail est :$email
" ;
// Faire expirer le hachage en 15 secondes
$conn->expire('user:188', 15);

L'exemple de code ci-dessus devrait être assez simple. Il se connecte d'abord à Redis avec un délai de 5 secondes, puis procède à la définition et à l'obtention d'une chaîne et d'un hachage. Toutes les commandes Redis peuvent être exécutées via OOP en les appelant directement depuis l'objet Redis comme dans l'exemple ci-dessus.

Vous êtes sur votre chemin !

Félicitations, vous avez appris les bases du stockage et de la récupération de données à une vitesse fulgurante via le moteur de stockage Redis, y compris la connexion et l'interface avec Redis à l'aide de PHP.

Veuillez noter que cet article ne couvre que les bases et que la page Types de données Redis de la documentation est un excellent endroit pour continuer à explorer Redis et toutes ses fonctionnalités.


[]