redis benchmark 限流控制

2021-07-23 16:48:56 字數 1082 閱讀 2019

由於自帶的redis-benchmark不能按照設定的tps執行,因此增加tps控制功能。

x/(t+t') = tps/1

t' = x/tps - t

其中,x表示處理的請求數,t表示處理x筆請求花費的時間,t'表示需要等待的時間,tps表示設定的tps值

利用redis-benchmark中自帶的時間事件實現

int counts = 0;

int showthroughput(struct aeeventloop *eventloop, long

long id, void *clientdata)

if (config.csv) return

250;

if (config.idlemode == 1)

float dt = (float)(mstime()-config.start)/1000.0;

float rps = (float)config.requests_finished/dt;

float realtime_rps = ((float)config.requests_finished - pre_req)/(dt - pre_time);

if(config.tps != 0)

}pre_time = dt; /* 上一次時間事件的累積時間 */

pre_req = config.requests_finished; /* 上一次時間事件累積完成的請求數 */

if (counts % 200 == 0)

counts++;

return

250; /* every 250ms */

}

當-c選項設定為1時,能夠得到更準確的tps控制,並且可用於計算請求延時,即傳送1筆請求到收到這筆請求耗費的時間。

1/(t+t') = tps/1

t' = 1/tps - t

其中,t表示處理x筆請求花費的時間,t'表示需要等待的時間,tps表示設定的tps值

實現類似,但是需要在readhandler和writehandler中實現。

Redis benchmark使用總結

redis benchmark為redis效能測試工具。指令說明 usage redis benchmark h p c n k h server hostname default 127.0.0.1 p server port default 6379 s server socket overri...

Redis benchmark測試Redis效能

redis benchmark是官方自帶的redis效能測試工具,可以有效的測試redis服務的效能。使用說明如下 usage redis benchmark h p c n k h server hostname default 127.0.0.1 p server port default 63...

Redis benchmark測試Redis效能

引自 redis benchmark為redis效能測試工具。指令說明 usage redis benchmark h p c n k h server hostname default 127.0.0.1 p server port default 6379 s server socket ove...