成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Redis批量執(zhí)行(如list批量添加)命令工具 —— pipeline管道應(yīng)用

WelliJhon / 2896人閱讀

摘要:服務(wù)端處理命令,并將結(jié)果返回給客戶端。這樣的連接可能非常快在一個回路網(wǎng)絡(luò)中,也可能非常慢在廣域網(wǎng)上經(jīng)過多個結(jié)點才能互通的兩個主機。

前言

Redis使用的是客戶端-服務(wù)器(CS)模型和請求/響應(yīng)協(xié)議的TCP服務(wù)器。這意味著通常情況下一個請求會遵循以下步驟:

(1)客戶端向服務(wù)端發(fā)送一個查詢請求,并監(jiān)聽Socket返回,通常是以阻塞模式,等待服務(wù)端響應(yīng)。
(2)服務(wù)端處理命令,并將結(jié)果返回給客戶端。

客戶端和服務(wù)端通過網(wǎng)絡(luò)進行連接。這樣的連接可能非??欤ㄔ谝粋€回路網(wǎng)絡(luò)中),也可能非常慢(在廣域網(wǎng)上經(jīng)過多個結(jié)點才能互通的兩個主機)。

但是無論是否存在網(wǎng)絡(luò)延遲,數(shù)據(jù)包從客戶端傳輸?shù)椒?wù)端,以及客戶端從服務(wù)端獲得響應(yīng)都需要花費一些時間。這段時間就稱為往返時延(Round Trip Time)。

因此當客戶端需要執(zhí)行一串請求的時候,很容易看出它對性能的影響(例如往同一個隊列中加入大量元素,或者往數(shù)據(jù)庫中插入大量的鍵)。如果RTT時長為250毫秒(在基于廣域網(wǎng)的低速連接環(huán)境下),即使服務(wù)器每秒可以處理10萬個請求,但是實際上我們依然只能每秒處理最多4個請求。

如果處于一個回路網(wǎng)絡(luò)中,RTT時長則相當短(我的主機ping 127.0.0.1時只需要0.063ms),但是如果你執(zhí)行一大串寫入請求的時候,還是會有點長。

如果需要一次執(zhí)行多個redis命令,以往的方式需要發(fā)送多次命令請求,由redis服務(wù)器依次執(zhí)行,并返回結(jié)果。

為了解決此類問題,設(shè)計者設(shè)計出了redis管道命令:客戶端可以向服務(wù)器發(fā)送多個請求,而不必等待回復(fù),并最終在一個步驟中讀取回復(fù)返回給客戶端,從而大大增加了協(xié)議性能。

pipeline在php中的應(yīng)用

管道的開啟方式最主要是一條命令:$redis->pipeline()

批量給一個list類型的key添加10w條數(shù)據(jù),實例如下:

connect("127.0.0.1", 6379);
   $redis->auth("******");
   $redis->select(0);
   $redis->pipeline();//開啟管道
   
   //假設(shè)變量$data數(shù)組有10w條數(shù)據(jù),批量添加到list類型中
   $data = array(1,2,3,...,100000);
   $key = "list1";
   foreach($data as $value){
       $redis->rpush($key,$value);
   }

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/29596.html

相關(guān)文章

  • 使用Redis管道提升性能

    摘要:首發(fā)于樊浩柏科學(xué)院的管道是用來打包多條無關(guān)命令批量執(zhí)行,以減少多個命令分別執(zhí)行帶來的網(wǎng)絡(luò)交互時間。在一些批量操作數(shù)據(jù)的場景,使用管道可以顯著提升的讀寫性能。這時,可以使用管道實現(xiàn),也可以內(nèi)嵌腳本實現(xiàn)。 首發(fā)于 樊浩柏科學(xué)院 Redis 的 管道 (pipelining)是用來打包多條無關(guān)命令批量執(zhí)行,以減少多個命令分別執(zhí)行帶來的網(wǎng)絡(luò)交互時間。在一些批量操作數(shù)據(jù)的場景,使用管道可以顯著...

    rickchen 評論0 收藏0
  • 使用python來操作redis用法詳解

    摘要:連接提供兩個類和用于實現(xiàn)的命令,用于實現(xiàn)大部分官方的命令,并使用官方的語法和命令,是的子類,用于向后兼容舊版本的。如果使用關(guān)系數(shù)據(jù)庫來存儲點擊,可能存在大量的行級鎖爭用。 1、redis連接 redis提供兩個類Redis和StrictRedis用于實現(xiàn)Redis的命令,StrictRedis用于實現(xiàn)大部分官方的命令,并使用官方的語法和命令,Redis是StrictRedis的子類,用...

    Corwien 評論0 收藏0

發(fā)表評論

0條評論

WelliJhon

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<