今天寫代碼使用了multi, redisdoc.com裏面這樣描述他:
標記一個事務塊的開始。
事務塊內的多條命令會按照先後順序被放進一個隊列當中,最後由 EXEC 命令原子性(atomic)地執行。
在使用時我在函數調用外層裏面使用了 multi ,開啓了 批量執行的 開關,但是 在函數之後 並未 顯式 的進行 exec 調用,粗略的以爲 只要 PHP 進程結束,redis-server 應該會進行 執行,結果並沒有。
謹以此文記下這個坑, multi 之後 必須 要 顯式 的調用 exec , 否則redis-server 只會放到 隊列 ,而並不執行隊列裏面的 命令。
參考鏈接:
http://redisdoc.com/transaction/multi.html?highlight=multi (redisdoc裏面 multi命令的描述)