Redis管道具有2个选项,可以将命令发送到数据库“ exec”和“ sync”。我想知道它们之间有什么区别。
对于示例,我将使用Jedis,java api进行redis。
例子
例子1
try (Jedis resource = redisManager.getResource()) {
Pipeline pipeline = resource.pipelined();
pipeline.multi();
pipeline.del("test-1");
pipeline.hset("test-2", "a", "b");
pipeline.exec();
}
例子2
try (Jedis resource = redisManager.getResource()) {
Pipeline pipeline = resource.pipelined();
pipeline.multi();
pipeline.del("test-1");
pipeline.hset("test-2", "a", "b");
pipeline.sync();
}
管道执行方法返回
Response<List<?>>
而sync返回void,但是,要使用sync从管道中获取响应,您必须捕获单个响应,类似这样。
Response<Long> isDeleted = pipeline.del("test-1");
Response<Long> isSuccess = pipeline.hset("test-2", "a", "b");
Response<List<String>> hvals = pipeline.hvals("test-2");
pipeline.sync();
assertEquals(1, (long) isDeleted.get());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句