検索

ホームページ  >  に質問  >  本文

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

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

伊谢尔伦伊谢尔伦2762日前508

全員に返信(3)返信します

  • PHPz

    PHPz2017-04-24 09:12:21

    操作の原子性により、操作は細分化できず、完全に実行されるか完全には実行されません。

    アトミックであるためには、オペレーティング システムの原理を学ぶ必要があります。少し時間が長くなったので正確ではないかもしれませんが、Redis とは関係のない一般的な例を示します。

    変数 A=10 があるので、それに 5 を加えたいと思います。次に、「5 を追加」操作はいくつかのステップに分かれています:

    • Aを読む
    • 読み取り結果+5
    • 結果はAに書き戻されます

    それに 3 を加えたいと考えている人がいます。彼は、私が変数 A を操作したいことを知りません。彼の「3 を加える」操作は、いくつかのステップに分割する必要があります。

      Aを読む
    • 読書+3の結果
    • 結果はAに書き戻されます
    私たちの操作 (「add 3」と「add 5」) がアトミックでない場合、相互の命令はランダムに配置され、結果は予測不可能になります。おそらく、私がそれを読んだとき、彼は +3 のライトバックを完了しました。 、すでに It is 13 だったので、+3、その後 +5 という正しい結果が得られました。 +3 操作中に書き戻さなかった可能性もあります。私がたまたま 10 を読み取ったので、書き戻すと 13 または 15 になる可能性があります。

    操作がアトミックであれば、彼が 3 を追加するステップを実行するときに私がそれを挿入できないようにすることができます。私は彼が操作を完了した後にのみ操作を開始できるため、データの信頼性が保証されます。

    返事
    0
  • PHPz

    PHPz2017-04-24 09:12:21

    データベーストランザクションと同様に、一連の操作は成功するか、まったく実行されません

    返事
    0
  • PHPz

    PHPz2017-04-24 09:12:21

    やりたいならやればいいし、やりたくないなら全然やらないでください

    返事
    0
  • キャンセル返事