最近在一个项目中,遇到需要将大量数据保存到redis中。
数据比较简单,但是量比较大,达到数亿。
开始的时候是每执行一条数据存一次Redis。后面为了减小压力改为批量存储。
在网上找到了[https://blog.csdn.net/supersub000/article/details/80100016],才解决问题。
public void saveDataToRedis(Map<String, String> map) {
redisTemplate.executePipelined(new RedisCallback<String>() {
@Override
public String doInRedis(RedisConnection connection) throws DataAccessException {
map.forEach((key, value) -> connection.set(redisTemplate.getKeySerializer().serialize(key), redisTemplate.getValueSerializer().serialize(value)));
return null;
}
});
}