问题描述
我有一个由多台机器组成的系统,每台机器都运行一个包含唯一对象的redis服务器。远程客户端可以访问这些服务器中的每一个并读取对象。
我想知道如何测量远程读取的延迟?我可以用Jedis来做吗?
解决方法
安装Redis时通常会使用的一种工具是redis-benchmark。
运行非常简单的测试,例如redis-benchmark -n 100000
将为您提供有关延迟的非常详细的报告。
以下是此类报告的摘要:
$ redis-benchmark -n 100000
====== SET ======
100007 requests completed in 0.88 seconds
50 parallel clients
3 bytes payload
keep alive: 1
58.50% <= 0 milliseconds
99.17% <= 1 milliseconds
99.58% <= 2 milliseconds
99.85% <= 3 milliseconds
99.90% <= 6 milliseconds
100.00% <= 9 milliseconds
114293.71 requests per second
,
由于我对每次读取的延迟都感兴趣,因此我发现SLOWLOG非常有用: https://redis.io/commands/slowlog
它包含时间戳和处理命令所花费的时间。