测量Redis中读取的远程对象的延迟

问题描述

我有一个由多台机器组成的系统,每台机器都运行一个包含唯一对象的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

它包含时间戳和处理命令所花费的时间。