博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redistemplate事务实践
阅读量:4080 次
发布时间:2019-05-25

本文共 1797 字,大约阅读时间需要 5 分钟。

code:

public Object testRedisMulti() {        Object o = stringRedisTemplate.execute(new SessionCallback() {            @Override            public Object execute(RedisOperations operations) throws DataAccessException {             //   operations.watch("testRedisMulti");                operations.multi();                operations.opsForValue().set("testRedisMulti", "0");                String now = (String) operations.opsForValue().get("testRedisMulti");                System.out.println(now);                try {                    Thread.sleep(5000);                } catch (InterruptedException e) {                    e.printStackTrace();                }                now = (String) operations.opsForValue().get("testRedisMulti");                System.out.println(now);                Object rs = operations.exec();                return rs;            }        });        System.out.println(o);        return o;    }

初始值:

127.0.0.1:6389> get testRedisMulti

"initial"

代码执行:

operations.multi();                operations.opsForValue().set("testRedisMulti", "0");                String now = (String) operations.opsForValue().get("testRedisMulti");                System.out.println(now);                try {                    Thread.sleep(5000);                } catch (InterruptedException e) {                    e.printStackTrace();                }

客户端:

127.0.0.1:6389> get testRedisMulti

"initial",意味着multi中的命令还未发送

System.out输出:

null
注意在multi中的get是娶不到值的

过5秒。。。

代码执行:

now = (String) operations.opsForValue().get("testRedisMulti");                System.out.println(now);                Object rs = operations.exec();                return rs;

System.out输出:

null

客户端:

127.0.0.1:6389> get testRedisMulti

"0",multi命令提交后修改了值

最终输出

[0, 0]

可以看到两次get的值返回给了execute函数,而且是修改后的值,符合原理

隐患?!

 

转载地址:http://dntni.baihongyu.com/

你可能感兴趣的文章
大数据入门:Scala函数式编程
查看>>
【数据结构周周练】002顺序表与链表
查看>>
C++报错:C4700:使用了非初始化的局部变量
查看>>
C++类、结构体、函数、变量等命名规则详解
查看>>
C++ goto语句详解
查看>>
【数据结构周周练】008 二叉树的链式创建及测试
查看>>
《软件体系结构》 第九章 软件体系结构评估
查看>>
《软件体系结构》 第十章 软件产品线体系结构
查看>>
《软件过程管理》 第六章 软件过程的项目管理
查看>>
《软件过程管理》 第九章 软件过程的评估和改进
查看>>
分治法 动态规划法 贪心法 回溯法 小结
查看>>
《软件体系结构》 练习题
查看>>
《数据库系统概论》 第一章 绪论
查看>>
《数据库系统概论》 第二章 关系数据库
查看>>
《数据库系统概论》 第三章 关系数据库标准语言SQL
查看>>
SQL语句(二)查询语句
查看>>
SQL语句(六) 自主存取控制
查看>>
《计算机网络》第五章 运输层 ——TCP和UDP 可靠传输原理 TCP流量控制 拥塞控制 连接管理
查看>>
堆排序完整版,含注释
查看>>
二叉树深度优先遍历和广度优先遍历
查看>>