溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis pipe管道

發布時間:2020-07-07 03:55:22 來源:網絡 閱讀:5985 作者:lilugoodjob 欄目:開發技術

redis pipe管道

redis命令在從提交到返回處理結果的過程中,消耗的時間我們稱之為RTT(往返時間)。

在需要批量執行redis 命令的場景下,如果命令單條逐個執行,那么總共花費的時間是命令條數 N * RTT。

redis 提供了管道技術來提高批量執行效率,即將多個命令打包發送給redis服務端,所有命令執行完后,再將所有結果打包返回。

在所有命令執行結束前,redis服務器會緩存已執行結束的結果。

在redis-cli命令行中,

使用redis管道技術時,我們通常將待執行的命令放到一個文本里,比如commands.txt,然后使用命令:

cat commands.txt | redis-cli --pipe

去讀取文本里的命令,然后打包已pipe管道的方式發送給redis服務端。

如果命令需要帶參數,我們可以根據redis官方提供的命令協議格式:

*<number of arguments> CR LF

$<number of bytes of argument 1> CR LF

<argument data> CR LF

...

$<number of bytes of argument N> CR LF

<argument data> CR LF

額,上面這段是不是很煩?是的,其實沒有這么復雜,你可以直接將多個redis命令寫到一個文件commands.txt里,記住是每個命令占一行。

然后執行:cat commands.txt |redis-cli --pipe

以管道方式執行。

你以為就萬事大吉了?no!你很可能會遇到這個錯誤:

ERR unknown command 'et'

即執行了第一條命令,剩下的都報錯了。原因是redis-cli中只支持dos格式的換行符 \r\n ,因此你需要對文件進行轉碼:unix2dos commands.txt

然后再執行上面的命令。


附:安裝unix2dos:

macOS: 

brew install unix2dos -y


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女