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