redisTemplate上的spring-data-redis的executePipelined方法是否等效于用于大量插入的redis-cli --pipe命令?

时间:2018-10-17 20:38:41

标签: redis insertion spring-data-redis mass

redisTemplate上的spring-data-redis的executePipelined方法是否等效于用于大量插入的redis-cli --pipe命令?

这就是我在Spring-data-redis中使用executePipelined方法的方法,它在100个数据块中可以正常工作,总共记录了400万条记录。

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

0 个答案:

没有答案