recherche

Maison  >  Questions et réponses  >  le corps du texte

用通俗点的语句告诉我Redis的操作的原子性是什么意思?

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

伊谢尔伦伊谢尔伦2796 Il y a quelques jours541

répondre à tous(3)je répondrai

  • PHPz

    PHPz2017-04-24 09:12:21

    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.

    répondre
    0
  • PHPz

    PHPz2017-04-24 09:12:21

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

    répondre
    0
  • PHPz

    PHPz2017-04-24 09:12:21

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

    répondre
    0
  • Annulerrépondre