redis的multi函數有兩種模式
Redis::MULTI或Redis::PIPELINE,默認Redis::MULTI
Redis::MULTI 將多個操作當做一個事務執行,多個命令依次發給服務端,用服務端緩衝,最後由EXEC執行。保證原子性,效率低
Redis::PIPELINE 將多條命令一次性的發給服務端,多個命令寫在客戶端,客戶端緩衝,一次性發給服務端,最後由EXEC執行。沒有原子性保證,效率高,pipeline效率明顯提升。
#multi函數的寫法(重點是管道的使用)
$pile = $this->getRedis()->multi(Redis::PIPELINE);
//或者$pipe = $this->getRedis()->pipeline();這取決於所用的redis擴展
//多條命令
$pipe->set();
$pipe->set();
$pipe->set();
//執行
$pipe->exec();
Redis事務是不支持回滾的。