Redis SYN C и EXEC - PullRequest
       177

Redis SYN C и EXEC

1 голос
/ 09 мая 2020

У конвейера Redis есть 2 варианта отправки команд в базу данных «exe c» и «syn c». Я хотел бы знать, в чем разница между ними.

Я буду использовать 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();
}

1 Ответ

0 голосов
/ 09 мая 2020

метод выполнения конвейера возвращает

Response<List<?>>

, тогда как syn c возвращает void , однако для получения ответа из конвейера с использованием syn c у вас есть для захвата индивидуальных ответов, что-то вроде этого.

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());
...