redis pipe管道
redis命令在從提交到返回處理結果的過程中,消耗的時間我們稱之為RTT(往返時間)。
在需要批量執(zhí)行redis 命令的場景下,如果命令單條逐個執(zhí)行,那么總共花費的時間是命令條數(shù) N * RTT。
redis 提供了管道技術來提高批量執(zhí)行效率,即將多個命令打包發(fā)送給redis服務端,所有命令執(zhí)行完后,再將所有結果打包返回。
在所有命令執(zhí)行結束前,redis服務器會緩存已執(zhí)行結束的結果。
在redis-cli命令行中,
使用redis管道技術時,我們通常將待執(zhí)行的命令放到一個文本里,比如commands.txt,然后使用命令:
cat commands.txt | redis-cli --pipe
去讀取文本里的命令,然后打包已pipe管道的方式發(fā)送給redis服務端。
如果命令需要帶參數(shù),我們可以根據(jù)redis官方提供的命令協(xié)議格式:
*<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里,記住是每個命令占一行。
然后執(zhí)行:cat commands.txt |redis-cli --pipe
以管道方式執(zhí)行。
你以為就萬事大吉了?no!你很可能會遇到這個錯誤:
ERR unknown command 'et'
即執(zhí)行了第一條命令,剩下的都報錯了。原因是redis-cli中只支持dos格式的換行符 \r\n ,因此你需要對文件進行轉碼:unix2dos commands.txt
然后再執(zhí)行上面的命令。
附:安裝unix2dos:
macOS:
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享名稱:redispipe管道-創(chuàng)新互聯(lián)
URL分享:http://www.sd-ha.com/article20/iojco.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、軟件開發(fā)、云服務器、外貿(mào)網(wǎng)站建設、電子商務、網(wǎng)頁設計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)