1. 程式人生 > >Redis入門指南-筆記-進階

Redis入門指南-筆記-進階

back 進階 返回 單位 告訴 watch 是把 場景 如果

4.1 事務

(1) 事務是一組命令的集合

(2) 事務同命令一樣是Redis的最小執行單位,一個事務中的命令要麽都執行,要麽都不執行。

(3) 格式:

MULTI //告訴Redis,下面我給你的命令屬於同一個事務,你先不要執行,而是把他們暫時存儲起來;

命令1;

命令2;

........

EXEC //告訴Redis將等待執行的事務隊列中的所有命令按照發送順序依次執行

//事務中的命令是在EXEC之後才執行

//EXEC命名返回值是多行字符串

(4) Redis的事務沒有關系數據庫事務提供的回滾(rollback)功能---將一個事務已經完成的的對數據庫的修改操作撤銷

(5) watch:

1) 事務執行後的結果都是一起返回的,無法將前一條命令的結果作為後一條命令的參數

2) 有時想先獲得一條命令的返回值,然後再根據這個值執行下一條命令

3) WATCH命令可以監控一個或多個鍵 ,一旦其中有一個鍵被修改或者刪除,之後的事務就不會執行;

監控一直持續到EXEC命令

4)執行EXEC命令後會取消對所有鍵的監控,如果不想執行事務中的命令,也可以用UNWATCH來取消監控。

4.2 生存時間

(1) 應用場景:會遇到一些有時效的數據,比如限時優惠活動、緩存或驗證碼等,過了一定的時間就需要刪除這些數據。

(2) Redis中可以使用EXPIRE命令設置一個鍵的生存時間,到時間後Redis會自動刪除它。

EXPIRE key seconds(單位為秒,必須為整數)

返回1:表示設置成功

返回0:表示鍵不存在或設置失敗

(3) TTL命令:知道一個鍵還有多久的時間會被刪除

返回值-1:表示鍵被刪除而不存在或者沒有為鍵設置生存時間(即永久存在)。

(4) PERSIST:取消鍵的生存時間設置(即將鍵恢復成永久的)

如果生存時間被成功清除,則返回1;否則返回0(鍵不存在或鍵本身就是永久的);

(5) 使用SET或GETSET命令為鍵賦值也會同時清除鍵的生存時間;

(6) 使用EXPIRE命令會重新設置鍵的生存時間

(7) PEXPIRE命令與EXPIRE命令的區別是前者時間設置更加精確為毫秒

PTTL命令以毫秒為單位返回鍵的剩余時間

Redis入門指南-筆記-進階