検索

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

redis事务具有原子性和持久性吗?

redis事务具有原子性和持久性吗?

redis设计与实现 书中说:

Redis的事务总是具有ACID中的原子性、一致性和隔离性,当服务器运行在AOF
持久化模式下,并且appendfsync选项的值为always时,事务也具有耐久性。

可看网上资料,又说redis事务不满足原子性和持久性:

求解答~~

迷茫迷茫2855日前831

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

  • 迷茫

    迷茫2017-04-24 09:14:18

    これは主に redis のアトミック性に関する疑問によるもので、redis がトランザクションでコマンドの実行に失敗した場合、ロールバックされないことが確認されました。

    コマンドが失敗した場合でも、キュー内の他のすべてのコマンドが処理されることに注意することが重要です。Redis はコマンドの処理を停止しません。

    返事
    0
  • PHPz

    PHPz2017-04-24 09:14:18

    まず第一に、redis はシングルスレッドであるため、mutil を使用して一連のコマンドを手動でカプセル化し、それらを全体として実行しない限り、実際にはトランザクションの概念がありません。具体的には、全体の 1 つの命令が失敗した場合に発生します。自分でロールバックできますか? テストを受けてください。
    シングルスレッドなので、各コマンドはアトミックです。Redis トランザクションは、コマンドのグループをカプセル化することによって実行されます。そのため、一貫性に関しては、テストの場合、それらのトランザクションは分離されます。上記を実行するとロールバックされ、その場合は一貫性があり、ロールバックしない場合は一貫性がありません。

    返事
    0
  • キャンセル返事