Redis SYNC和EXEC

奥比万特

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();
}
Tabreaz

管道执行方法返回

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章