最近在官网的教程上看到Redis的很多操作都是原子性的。 实在不理解啥意思。
小伙看你根骨奇佳,潜力无限,来学PHP伐。
操作の原子性により、操作は細分化できず、完全に実行されるか完全には実行されません。
アトミックであるためには、オペレーティング システムの原理を学ぶ必要があります。少し時間が長くなったので正確ではないかもしれませんが、Redis とは関係のない一般的な例を示します。
変数 A=10 があるので、それに 5 を加えたいと思います。次に、「5 を追加」操作はいくつかのステップに分かれています:
それに 3 を加えたいと考えている人がいます。彼は、私が変数 A を操作したいことを知りません。彼の「3 を加える」操作は、いくつかのステップに分割する必要があります。
データベーストランザクションと同様に、一連の操作は成功するか、まったく実行されません
やりたいならやればいいし、やりたくないなら全然やらないでください
操作の原子性により、操作は細分化できず、完全に実行されるか完全には実行されません。
アトミックであるためには、オペレーティング システムの原理を学ぶ必要があります。少し時間が長くなったので正確ではないかもしれませんが、Redis とは関係のない一般的な例を示します。
変数 A=10 があるので、それに 5 を加えたいと思います。次に、「5 を追加」操作はいくつかのステップに分かれています:
それに 3 を加えたいと考えている人がいます。彼は、私が変数 A を操作したいことを知りません。彼の「3 を加える」操作は、いくつかのステップに分割する必要があります。
Aを読む-
読書+3の結果-
結果はAに書き戻されます-
私たちの操作 (「add 3」と「add 5」) がアトミックでない場合、相互の命令はランダムに配置され、結果は予測不可能になります。おそらく、私がそれを読んだとき、彼は +3 のライトバックを完了しました。 、すでに It is 13 だったので、+3、その後 +5 という正しい結果が得られました。 +3 操作中に書き戻さなかった可能性もあります。私がたまたま 10 を読み取ったので、書き戻すと 13 または 15 になる可能性があります。データベーストランザクションと同様に、一連の操作は成功するか、まったく実行されません
やりたいならやればいいし、やりたくないなら全然やらないでください