redis 的multi

曾經被面試官問,redis中pipline和multi的區別,那是我不清楚,本着覆盤的心,查了些資料,並自己動手實驗

總結如下

  • pipeline選擇客戶端緩衝,multi選擇服務端緩衝;
  • 請求次數的不一致,multi需要每個命令都發送一次給服務端,pipeline最後一次性發送給服務端,請求次數相對於multi減少
  • multi/exec可以保證原子性,而pipeline不保證原子性(redis的原子性不等同於數據庫的原子性)

如果redis,這開啓事務後,命令入隊能在檢查時就知道這是個有問題的命令,那此時可以保證原子性

如果是要等到運行時才能判斷出是不可執行命令,這redis會跳過此命令,執行後面的命令。切記!切記!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章