我想了解管道是如何工作的,我想尝试一些不同的东西。我注意到如果密钥没有过期密钥,就没有设置过期密钥的方法,所以我用绝地武士做了一个例子。
例子
Map<String, Response> responses = new HashMap<>();
long start = System.currentTimeMillis();
try (Jedis resource = redisManager.getResource()) {
Pipeline pipeline = resource.pipelined();
responses.put("time", pipeline.ttl(args[1]));
pipeline.sync();
pipeline.multi();
if (responses.get("time").get().equals(-1L)) {
pipeline.expire(args[1], 15);
}
pipeline.exec();
}
我想知道我应该那样用还是你有什么想法?我找不到任何解决办法。
1条答案
按热度按时间bwntbbo31#
如果在将每个命令发送到管道之后同步并获得结果,那么与不使用管道发送命令没有太大区别。流水线的好处来自于在不等待响应的情况下发送大量命令,然后一次读取所有响应(这样就省去了等待响应的大量时间)。更多信息:https://redis.io/topics/pipelining).
因此,上面的实现更像是“pipeline-y”(请原谅任何关于确切管道方法名称的错误,我主要使用spring数据而不是直接的jedi):
如您所见,这与要检查和过期的密钥列表一起工作。如果只需要检查一个密钥,然后使其过期,则不需要管道。