用通俗点的语句告诉我Redis的操作的原子性是什么意思?
伊谢尔伦
伊谢尔伦 2017-04-24 09:10:21
0
3
547

最近在官网的教程上看到Redis的很多操作都是原子性的。
实在不理解啥意思。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

répondre à tous(3)
PHPzhong

L'atomicité de l'opération garantit que l'opération ne peut pas être à nouveau divisée, et qu'elle sera soit exécutée complètement, soit pas complètement exécutée.

Vous devez apprendre les principes atomiques des systèmes d'exploitation. Le temps est un peu long et ce n'est peut-être pas exact. Permettez-moi de donner un exemple courant qui n'a rien à voir avec Redis.

Il y a une variable A=10, je veux y ajouter 5. Ensuite mon opération "ajouter 5" se découpe en plusieurs étapes :

  • Lire A
  • Lire le résultat +5
  • Le résultat est réécrit dans A

Il y a une autre personne qui veut y ajouter 3. Il ne sait pas que je veux aussi faire fonctionner la variable A. Son opération "ajouter 3" doit être divisée en plusieurs étapes :

  • Lire A
  • Lire le résultat +3
  • Le résultat est réécrit dans A

Si nos opérations ("Ajouter 3" et "Ajouter 5") ne sont pas atomiques, les instructions entre elles seront disposées de manière aléatoire et les résultats sont imprévisibles. Peut-être qu'il a terminé la réécriture de +3 en premier. Il était déjà 13 heures, nous avons donc obtenu le bon résultat de +3 puis +5. Il est également possible qu'il n'ait pas répondu lors de l'opération +3. Il m'est arrivé d'en lire 10, donc lors de la réécriture, cela peut être 13 ou 15.

Si notre opération est atomique, nous pouvons nous assurer que je ne peux pas l'insérer lorsqu'il effectue l'étape d'ajout de 3. Je ne peux démarrer mon opération qu'une fois qu'il a terminé l'opération, garantissant ainsi la fiabilité des données.

PHPzhong

Semblable à une transaction de base de données, un ensemble d'opérations réussit ou n'est pas exécuté du tout

PHPzhong

Si vous voulez le faire, faites tout ; si vous ne voulez pas le faire, ne le faites pas du tout

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal