2018年3月22日 星期四

redis 設定檔、事務 Redis (三)

※redis.conf 設定檔

有神人翻譯好了
在伺服器執行期間可用
config set
config get
動態更改設定內容,但伺服器關閉並不會寫回設定檔



※事務

multi:啟動事務
exec:執行事務
discard:放棄事務
從 multi~exec 或 multi~discard 為一個事務

以下兩個命令必需在 multi 之前
watch:監視 1~多個 key,被監視的 key 若被改變,執行 exec 時不會成功
unwatch:放棄監視所有 key

※使用 SCRIPT 也能做到事務的功能,所以未來有可能會將事務移除
官網 script 連結
中文 script 連結

順利的事務:


執行 exec 不是 nil 時,就是順利的事務


放棄事務:


放棄了事務,所以 xxx 和 ooo 並沒有設定成功


編譯錯誤的事務:


編譯錯誤會整體回退,所以在這個事務裡面的操作都不會成功
fjasdf 並不是正常的命令,算編譯錯誤
又假如 set 命令的格式是 set key value,假設只有打 set key,並沒有打 value,也算是編譯錯誤


執行期錯誤的事務:


k1 並不是數字,但要到執行期才會知道,此時不會整體回退,


順利監視的事務:


如果順利,那有沒有加 watch 的結果都是一樣的


unwatch:


在 watch 之後,還沒下 multi,值就被改了(就算值改成一樣也算改),執行到 exec 時,回傳 nil,表示失敗了

此時要 unwatch 後再重新操作一次,由於已經執行過 exec,所以再操作一次時,還是要下 multi

如果再操作一次途中,值又被改了,當然也不會成功,必需一直反覆執行這個動作或放棄事務

沒有留言:

張貼留言