Redis 5トランザクションとWatch

3086 ワード

トランザクションの原理は、トランザクションに属するコマンドをRedisに送信してから、Redisにコマンドを順次実行させることです.
 
127.0.0.1:6379> multi
OK
127.0.0.1:6379> zadd result  123 php
QUEUED
127.0.0.1:6379> zadd result  11 php
QUEUED
127.0.0.1:6379> exec
1) (integer) 0
2) (integer) 0

 
Redis                 ,      。
     EXEC         , Redis       ,             。
         EXEC  ,           ,             ,  Redis              

 
 
エラー処理
exec完了
コマンドの実行エラーが発生した場合、後続のコマンドは実行されませんが、前の文はすべて実行されます.しかしredisはロールバック機能を提供しておらず、すべての腐った屋台は開発者が処理しなければならない.
 
Watch
1つのキーの値++が必要な場合、実行時に他のクライアントがこの値を変更します.
トランザクションを実行するときに変数が変更されたかどうかをリスニングし、トランザクションが変更された場合はキャンセルします.
この変数をリスニングし終わったら、トランザクションで変更しない限りキャンセルします.
execを実行すると、すべてのキーの監視が解除されます.
 
 
ウォッチが傍受するキーが期限切れになったので、キーが変更されたとは思いません.
 
127.0.0.1:6379> set count 1
OK
127.0.0.1:6379> watch count
OK
127.0.0.1:6379> set count 2
QUEUED
127.0.0.1:6379> multi 
OK 
127.0.0.1:6379> set count 3 
QUEUED 
127.0.0.1:6379> exec 
(nil)

 
 
 
 
!!!