这看起来应该是微不足道的,但我想通过 redis-cli 运行查询,然后返回服务器花费的时间以及结果。这仅用于调试目的,以排除我的客户端库或延迟的问题。有办法做到这一点吗?
最佳答案
您可以通过将正在研究的 redis 命令包装在 MULTI/EXEC
中来完成此操作 block ,其中 TIME
命令在您的命令之前和之后使用。例如:
使用节点库:
var multi = redis.multi();
multi.time(); // start time
multi.sunionstore(['fast_food_joints', 'pizza_hut', 'taco_bell']); // this is the command I'm investigating
multi.time(); // end time
multi.exec(function(err, responses){
var response = responses[1]; // the response i care about
var start = (parseInt(responses[0][0]) * 1000) + (parseInt(responses[0][1]) / 1000);
var end = (parseInt(responses[2][0]) * 1000) + (parseInt(responses[2][1]) / 1000);
var execution_time = end - start; // in milliseconds
});
或者...使用命令行(这是您在问题中要求的):
192.168.1.1:6379> MULTI
OK
192.168.1.1:6379> TIME
QUEUED
192.168.1.1:6379> SUNIONSTORE fast_food_joints pizza_hut taco_bell
QUEUED
192.168.1.1:6379> TIME
QUEUED
192.168.1.1:6379> EXEC
1) 1) "1450818240"
2) "666636"
2) (integer) 48886
3) 1) "1450818240"
2) "666639"
然后自己算算。上面的例子用了 3 微秒。
关于redis - Redis-Cli 中的定时查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18134167/