1. 程式人生 > >Redis命令學習-?Transaction(事務)

Redis命令學習-?Transaction(事務)

list lib targe 失敗 reference ret con margin bold

?DISCARD

?DISCARD :取消事務,放棄運行事務塊內的全部代碼。假設在使用WATCH命令監視某個key。則取消監視,等同於UNWATCH。

?返回值:總是返回ok。 ?

?
  1. 127.0.0.1:6379> MULTI
  2. OK
  3. 127.0.0.1:6379> PING
  4. QUEUED
  5. 127.0.0.1:6379> SET greeting "hello"
  6. QUEUED
  7. 127.0.0.1:6379> DISCARD
  8. OK
  9. 127.0.0.1:6379> GET greeting
  10. (nil)

EXEC

?EXEC:運行全部事務塊內的命令。

?返回值:事務塊內全部命令的返回值,按命令運行的先後順序運行。

操作被打斷時,返回nil。

  1. 127.0.0.1:6379> MULTI
  2. OK
  3. 127.0.0.1:6379> INCR user_id
  4. QUEUED
  5. 127.0.0.1:6379> INCR user_id
  6. QUEUED
  7. 127.0.0.1:6379> INCR user_id
  8. QUEUED
  9. 127.0.0.1:6379> INCR user_id
  10. QUEUED
  11. 127.0.0.1:6379> EXEC
  12. 1) (integer) 1
  13. 2) (integer) 2
  14. 3) (integer) 3
  15. 4) (integer) 4

MULTI

?MULTI :標記一個事務塊的開始。

最後由EXEC原子性的運行。

?返回值:總是返回OK。

UNWATCH

?UNWATCH:取消命令對全部key的監視。假設在WATCH命令之後,EXEC或DISCARD命令被運行的話,就不須要運行UNWATCH命令。


  1. 127.0.0.1:6379> UNWATCH
  2. OK
WATCH

?WATCH [key .. ]:監視一個或者多個key。假設在運行事務前,這些key被打斷,那麽事務運行失敗。

?返回值:ok ? ?


  1. 127.0.0.1:6379> WATCH lock lock_times
  2. OK
  3. 127.0.0.1:6379> MULTI
  4. OK
  5. 127.0
    .0.1:6379> SET lock a
  6. QUEUED
  7. 127.0.0.1:6379> INCR lock_times
  8. QUEUED
  9. 127.0.0.1:6379> EXEC
  10. 1) OK
  11. 2) (integer) 1

?

Redis命令學習-?Transaction(事務)