RedisTemplate Pipelined的简单使用
简单理解【货物批发】:
第一种方式:想到一件商品就联系批发厂商送一件,劳命伤财;
第二种方式:将想要的商品列出清单让批发厂商一次性送来,成本节约;
第二种方式就可以看作是 pipelined。
@Slf4j
@Component
public class RedisUtil {
@Autowired
private RedisTemplate redisTemplate;
/**
* @title: strAddPipelined
* @author: admin
* @createDate: 2022/2/25 21:50
* @version: 1.0
* @param map:
* @param seconds:
* @return: void
* @description: 使用pipelined批量存储
*/
public void strAddPipelined(Map map, long seconds) {
RedisSerializer serializer = redisTemplate.getStringSerializer();
redisTemplate.executePipelined(new RedisCallback() {
@Override
public String doInRedis(RedisConnection connection) throws DataAccessException {
map.forEach((key, value) -> {
connection.setNX(serializer.serialize(key), serializer.serialize(value));
connection.expire(serializer.serialize(key),seconds);
});
return null;
}
},serializer);
}
/**
* @title: strGetPipelined
* @author: admin
* @createDate: 2022/2/28 11:28
* @version: 1.0
* @param keyList:
* @return: java.util.List
* @description: 使用pipelined批量获取
*/
public List strGetPipelined(List keyList) {
RedisSerializer serializer = redisTemplate.getStringSerializer();
List