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