要解決這個問題,我們就需要使用 redis 的pipeline功能,它可以把多條命令放在乙個網路請求中傳送到伺服器,並預設在乙個事務中執行這些命令。乙個事務是不會被打斷的,從事務開始然後執行裡面的多個命令到結束的整個過程,可以看做乙個原子操作。
pipeline的使用方法如下:
$pipe
=$redis
->
multi
(redis:
:pipeline);
$pipe
->
lrange
($lpushmqkey,0
,$loop_num-1
);$pipe
->
ltrim
($lpushmqkey
,$loop_num,-
1);$data
=$pipe
->
exec()
;
當**執行到exec()的時候,它才會真正去連線伺服器,然後把待執行的命令在乙個事務中一次性執行完成。並返回乙個列表。返回的列表有兩項,第0項是包含結果的列表,第1項為ltrim 的返回結果。
引數說明:redis::multi或redis::pipeline. 預設是 redis::multi
redis::multi:將多個操作當成乙個事務執行
redis::pipeline:讓(多條)執行命令簡單的,更加快速的傳送給伺服器,但是沒有任何原子性的保證
Python中一次讀取多個值
python 2裡面讀取輸入的函式是raw input python 3的是input 讀入乙個值後回車讀取輸入就退出了,想要一次讀取多個輸入,可以像下面這樣 輸出的是字串,要想讀取的是數值,可以稍微改一下,像這樣 int可以換成其它需要的型別,左邊可以是任意多個變數 還可以把讀取的值存到乙個列表裡...
linux中一次建立多個目錄
linux中建立目錄當然使用命令工具mkdir make directory 聯想記憶法能讓你記得牢固。如果你要建立幾個目錄,例如 dir1目錄,dir2目錄,dir3目錄可以這樣 mkdir dir1 dir2 dir3 如果你想在子目錄中建立目錄,可以這樣 mkdir src src dir1 ...
記一次close chan出的問題
在一次寫 的過程中,將乙個chan給close掉之後,發現有的時候在讀chan的select中會報錯,當時很納悶為什麼呢?於是我就寫了乙個驗證,發現close後讀chan肯定能讀出來nil,當時就懵逼了,不應該close了就讀出,應該阻塞呀。ch make chan mm,3 go func els...