Redis事務執行是三個階段:
開啟:以MULTI開始一個事務
入隊:將多個命令入隊到事務中,接到這些命令并不會立即執行,而是放到等待執行的事務隊列里面
執行:由EXEC命令觸發事務
當一個客戶端切換到事務狀態之后, 服務器會根據這個客戶端發來的不同命令執行不同的操作:
如果客戶端發送的命令為 EXEC 、 DISCARD 、 WATCH 、 MULTI 四個命令的其中一個, 那么服務器立即執行這個命令。
與此相反, 如果客戶端發送的命令是 EXEC 、 DISCARD 、 WATCH 、 MULTI 四個命令以外的其他命令, 那么服務器并不立即執行這個命令, 而是將這個命令放入一個事務隊列里面, 然后向客戶端返回 QUEUED 回復。