Является ли метод executePipelined Spring-data-redis для redisTemplate эквивалентным команде redis-cli --pipe, используемой для массовой вставки? - PullRequest
0 голосов
/ 17 октября 2018

Является ли метод executePipelined Spring-data-redis для redisTemplate эквивалентным команде redis-cli --pipe, используемой для массовой вставки?

Вот как я использую метод executePipelined с Spring-data-redis, и он отлично работает в блоках по 100 для в общей сложности 4 миллионов записей.

return items -> {
            redisTemplate.executePipelined(new RedisCallback<Object>() {
                @Override
                public Object doInRedis(RedisConnection connection) throws DataAccessException {
                    items.forEach(item -> {
                        connection.set((item.getId().getBytes(), item.toJson().getBytes(), Expiration.seconds(THREE_DAYS), RedisStringCommands.SetOption.UPSERT);
                    });
                    return null;
                }
            });
        };

Массовая вставка Redis, гдев файле написано 100 записей

cat redis-data.txt | redis-cli -c -h redisHostname -p 6379 --pipe

Может кто-нибудь сказать мне, какой из них лучше и его следует использовать?Я не вижу разницы между ними.Ниже приведены ссылки, на которые я ссылался:

https://redis.io/topics/mass-insert

https://docs.spring.io/spring-data/data-redis/docs/1.1.1.RELEASE/reference/html/redis.html

...