- 文法
- MULTI
- オープン情勢は、後続のコマンドは、同じトランザクションに追加されます
- トランザクション内の操作がサーバーに送信されますが、それはすぐに発生しませんが、トランザクションに対応するキューに入れて、サーバーがキューを返します。
- EXEC
- EXECを実行した後、トランザクション内のコマンドが実行されます
- エラーが発生したときに、トランザクション内のコマンドは、トランザクションは停止しますが、続行されませんロールバックされません
- DISCARD
- 取引をキャンセルし、トランザクションはキューがクリアされます、クライアントが業務の状態を終了します
- MULTI
- 酸
- 不可分性
- サポートしていません。
- これは、ロールバックし、継続していません
- 隔離
- サポート
- Transactionコマンド実行順序、および中断されません(最初のEXEC最初の実行)他のクライアント
- スタンドアローンのRedisシングルスレッドのプロセスを使用して操作を読み取りおよび書き込み
- 持久性
- それは簡単に失われた、Redisのデータをサポートしていません。
- 一貫性
- サポートしていません。
- 強い整合性の要件は楽観的ロックによって達成される(時計)
- 不可分性
時計
- Redisの楽観的ロックを達成
- メカニズム
- データセットを聴いて開いているトランザクション、前に、EXEC、見つかったデータが変更されている場合、トランザクションは自動的に解除され(DISCARD)
- トランザクションEXEC後、関係なく、成功または失敗の、リスナーが削除されます
WATCH mykey # 监视mykey的值
MULTI # 开启事务
SET mykey 10
EXEC # 如果mykey的值在执行exec之前发生过改变, 则该事务会取消(客户端可以在发生碰撞后不断重试)
setnxと悲観的ロック
- setnxキーが存在しない、正常に設定されます
- 非トランザクションパイプライン