//使用sessionCallback 默认情况下redis客户端是一条条命令发送给redis服务器
Object execute = redisTemplate.execute(new SessionCallback() {
@Override
public Object execute(RedisOperations redisOperations) throws DataAccessException {
//设置要监控的key
redisOperations.watch("key1");
//开启事务,全部进入队列
redisOperations.multi();
redisOperations.opsForValue().set("key1", 1);
//此处会出现空指针,因为reids只是放入队列并没有执行
redisOperations.opsForValue().increment("key1", 1);
return redisOperations.exec();//执行
}
});
//使用redis流水线
redisTemplate.executePipelined(new SessionCallback() {
@Override
public Object execute(RedisOperations redisOperations) throws DataAccessException {
//设置要监控的key
redisOperations.watch("key1");
//开启事务,全部进入队列
redisOperations.multi();
redisOperations.opsForValue().set("key1", 1);
//此处会出现空指针,因为reids只是放入队列并没有执行
redisOperations.opsForValue().increment("key1", 1);
return redisOperations.exec();//执行
}
});
Redis 事务基本操作demo
Redis事务与流水线处理
最新推荐文章于 2023-06-28 10:16:26 发布
本文探讨了在Redis中使用sessionCallback进行事务处理和流水线操作的方法。通过具体代码示例,展示了如何设置监控key,开启事务并将操作放入队列,最后执行事务。同时,对比了事务与流水线在操作上的异同。
256

被折叠的 条评论
为什么被折叠?



