Création de transactions dans Redis

Création de transactions dans Redis
Si vous êtes sérieux au sujet de Redis, vous voudrez utiliser des transactions pour gérer vos données. Les transactions redis ne sont pas très différentes des transactions dans une base de données relationnelle.

Une transaction de base de données fait référence à une seule unité de travail composée de requêtes simples à plusieurs. Dans les cas, une opération ne peut être classée comme une transaction que s'il y a des modifications à la base de données.

Nous ne nous en préoccuperons pas, mais nous apprendrons à utiliser la commande de montre aux côtés des transactions redis pour celle-ci.

Que sont les transactions?

Dans Redis, les transactions comprennent quatre commandes principales: Watch, Exec, Discard et Multi.

En utilisant les commandes ci-dessus, vous pouvez ouvrir un bloc et ajouter plusieurs commandes en même temps. Une fois terminé, vous exécutez les commandes en une seule unité.

Pour qu'une transaction réussisse, Redis garantit que:

  1. Toutes les commandes spécifiées dans une unité de transaction sont exécutées consécutivement. Par conséquent, le premier arrivé, première course.
  2. Toutes les commandes d'une unité de transaction doivent exécuter avec succès. Si l'une des commandes de l'unité échoue, l'ensemble du bloc de transaction échoue également. Cette fonctionnalité est connue sous le nom d'exécution de la commande atomique
  3. Troisièmement, les commandes d'une transaction sont sérialisées. Par conséquent, un client ne peut pas être un serveur pendant qu'une unité de transaction s'exécute.

Redis Create Transaction

Vous créez une unité de transaction à l'aide de la commande multiple. La commande multi-commandes reviendra ok. Vous pouvez aller de l'avant et ajouter toutes les commandes de transaction l'une après l'autre.

Au lieu d'exécuter les commandes, Redis les fera la queue dans l'insertion jusqu'à ce que vous les appelez.

Un exemple est comme indiqué ci-dessous:

127.0.0.1: 6379> Multi
D'accord

Redis Exécuter l'unité de transaction

Redis fera la file d'attente des commandes dans une unité de transaction jusqu'à ce que vous les exécutez manuellement.

Nous pouvons le faire en utilisant la commande exec. Cela dit à redis d'exécuter toutes les commandes en file d'attente dans l'ordre d'insertion.

Un exemple d'utilisation est comme indiqué ci-dessous:

127.0.0.1: 6379> Set Newkey "100"
En queue de file d'attente
127.0.0.1: 6379> Incr Newkey
En queue de file d'attente
127.0.0.1: 6379> Obtenez Newkey
En queue de file d'attente
127.0.0.1: 6379>

Vous remarquerez que chaque commande exécutée est en file d'attente. Une commande en file d'attente est une commande qui devrait s'exécuter après l'appel.

Pour l'exécuter, appelez Exec comme:

127.0.0.1: 6379> Exec
1) OK
2) (entier) 101
3) "101"

Cela devrait exécuter toutes les commandes et renvoie les valeurs résultantes.

Redis supprimer la file d'attente

Supposons que vous souhaitiez nettoyer votre file d'attente de commande et rincer toutes les commandes planifiées? Pour cela, vous pouvez utiliser la commande Discard comme indiqué:

127.0.0.1: 6379> Multi
D'accord
127.0.0.1: 6379> Set Newkey "100"
En queue de file d'attente
127.0.0.1: 6379> Incr Newkey
En queue de file d'attente
127.0.0.1: 6379> Obtenez Newkey
En queue de file d'attente
127.0.0.1: 6379> Jeter
D'accord

Après avoir exécuté la commande de défaillance, Redis reviendra OK et fermera l'unité de transaction.

Conclusion

Ce court article décrit comment travailler et utiliser les transactions redis dans votre base de données. Vérifiez la ressource ci-dessous pour en savoir plus.

https: // redis.IO / sujets / transactions