redis-benchmark 限流控制
由于自带的redis-benchmark不能按照设定的TPS执行,因此增加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) {
REDIS_NOTUSED(eventLoop);
REDIS_NOTUSED