開心一笑
別人說我心狠手辣,我舔了一下自己的手,給辣哭了。。。
提出問題
Redis事務(wù)如何實現(xiàn)???
解決問題
例一:Redis事務(wù)簡單用法
127.0.0.1:6379> keys *
1) "MyRedis"
#事務(wù)開始
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set MyRedis "change MyRedis one"
#命令會加入隊列中
QUEUED
127.0.0.1:6379> set MyRedis "change MyRedis two"
#命令會加入隊列中
QUEUED
#事務(wù)結(jié)束
127.0.0.1:6379> exec
1) OK
2) OK
127.0.0.1:6379> get MyRedis
"change MyRedis two"
例二:如果Redis事務(wù)中,EXEC調(diào)用之后失敗出現(xiàn)的錯誤
127.0.0.1:6379> set ay_test "one"
OK
#事務(wù)開始
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set ay_test "two"
QUEUED
127.0.0.1:6379> set ay_test "three"
QUEUED
#sadd 這里會出現(xiàn)錯誤
127.0.0.1:6379> sadd ay_test "four"
QUEUED
127.0.0.1:6379> set ay_test "five"
QUEUED
127.0.0.1:6379> exec
1) OK
2) OK
3) (error) WRONGTYPE Operation against a key holding the wrong kind of value
4) OK
127.0.0.1:6379> get ay_test
"five"
127.0.0.1:6379>
例三:語法錯誤的情況,這時,事務(wù)里的所有命令都不會執(zhí)行
127.0.0.1:6379> set ay_test "one"
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set ay_test "two"
QUEUED
127.0.0.1:6379> set ay_test "three"
QUEUED
127.0.0.1:6379> st ay_test "four"
(error) ERR unknown command 'st'
127.0.0.1:6379> st ay_test "five"
(error) ERR unknown command 'st'
127.0.0.1:6379> set ay_test "six"
QUEUED
127.0.0.1:6379> set ay_test "seven"
QUEUED
127.0.0.1:6379> exec
(error) EXECABORT Transaction discarded because of previous errors.
127.0.0.1:6379> get ay_test
"one"

美圖
讀書感悟
來自《肖申克救贖》
- 人生可以歸結(jié)為一種簡單的選擇:不是忙著活,就是忙著死。
- 有的鳥是不會被關(guān)住的,因為它們的羽毛太美麗了!
- 看了這部電影我與信念、自由、友誼交了朋友。