022_Jedis的事物
1. 新建一个名为JedisTransaction的Java项目, 拷入相关jar包, 并添加到build path
2. 编辑JedisTransaction.java
package com.redis.transaction;import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;/*** Jedis事物*/
public class JedisTransaction {public static void main(String[] args) {new Thread(new Runnable() {@Overridepublic void run() {weChatPay();}}).start();new Thread(new Runnable() {@Overridepublic void run() {alipay();}}).start();}public static void alipay() {try {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");System.out.println("alipay start...");// 监听keyjedis.watch("lock");// 开始事物Transaction transaction = jedis.multi();transaction.set("lock", "click game pay");transaction.set("lock", "create game pay order");transaction.set("lock", "show pay ui");transaction.set("lock", "choose alipay");transaction.set("lock", "alipay create order");Thread.sleep(2000);transaction.set("lock", "pay money");transaction.set("lock", "ali receive money");transaction.set("lock", "ali send pay call back to game server");transaction.set("lock", "game server receive ali pay call back");transaction.set("lock", "game send add coin commond to game client");transaction.set("lock", "game client add coin");// 提交事物List<Object> list = transaction.exec();for (Object object : list) {System.out.println("alipay: " + object);}System.out.println("alipay end...");jedis.close();} catch (Exception e) {System.out.println("alipay exception: " + e.getMessage());e.printStackTrace();}}public static void weChatPay() {try {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");System.out.println("wechatpay start...");// 监听keyjedis.watch("lock");// 开始事物Transaction transaction = jedis.multi();transaction.set("lock", "click game pay");transaction.set("lock", "create game pay order");Thread.sleep(3000);transaction.set("lock", "show pay ui");transaction.set("lock", "choose wechatpay");transaction.set("lock", "wechatpay create order");transaction.set("lock", "pay money");transaction.set("lock", "wechat receive money");transaction.set("lock", "wechat send pay call back to game server");transaction.set("lock", "game server receive wechat pay call back");transaction.set("lock", "game send add coin commond to game client");transaction.set("lock", "game client add coin");// 提交事物List<Object> list = transaction.exec();for (Object object : list) {System.out.println("wechatpay: " + object);}System.out.println("wechatpay end...");jedis.close();} catch (Exception e) {System.out.println("wechatpay exception: " + e.getMessage());e.printStackTrace();}}}
3. 运行结果
022_Jedis的事物相关推荐
- mysql 字段扩容_解决DB2事物日志满、扩充表字段长度和表空间的命令
一.通常我们在使用db2导入数据或进行别的操作时会遇到事物日志已满的情况,导致操作无法继续. 在windows系统中,我们可先db2 get db cfg for dbname(要修改的数据库名) 来 ...
- 事物的级别_浅谈MySQL并发控制:隔离级别、锁与MVCC
推荐阅读: 恕我直言!收藏这个MySQL文档,你其余的MySQL学习资料都可以扔了 前言 如果数据库中的事务都是串行执行的,这种方式可以保障事务的执行不会出现异常和错误,但带来的问题是串行执行会带来性 ...
- iOS FMDB之FMDatabaseQueue(事物与非事物)
事物与非事物 事物是一个并发控制的基本单元,所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 事物与非事物,简单的举例来说就是,事物就是把所有的东西打包在一 ...
- Mysql 索引 事物
索引 针对庞大数据 加速查询 缺点 占用空间 分类: 普通索引: 通过 index 创建 唯一索引: 就是 unique key 主键索引: 就是 primary key 联合索引(多列)" ...
- JFinal 源码导读第八天(1) Db.tx 事物
为什么80%的码农都做不了架构师?>>> 1.接上面的事物介绍 /*** IAtom support transaction of database.* It can be i ...
- @Transactional-同一个类中方法自调,调用方法事物失效
问题分析 一个类中的方法调用另一个事物传播性为创建事物的方法,调用的方法事物失效? SpringAOP 代理的Service对象调用了其方法,这个方法再去调用这个Service中的其他方法是没有使用A ...
- jpa SessionFactory事物失效
前言: 因为项目中使用jpa的SessionFactory用@Autowired的方式来操作Hibernate的Session,死活开不了事物,最后终于在一篇博客的帮助下,了解到使用SessionFa ...
- jdbc事物回滚是否需要重新commit 不需要
.... Connection con = null; Statement st = null; try{ Class.forName("oracle.jdbc.driver.Ora ...
- 付睿:对新事物的追寻之旅 | 优秀毕业生专访
[ 导读 ] 清华-青岛数据科学研究院(以下简称"数据院")自2014年4月成立以来,秉承"学校统筹,问题引导,社科突破,商科优势,工科整合,业界联盟"24字指 ...
最新文章
- mysql 导入8msql文件_MySQL导入大容量SQL文件数据问题
- Android组件系列----Activity的生命周期
- kmeans中的k的含义_聚类的Python实现(二):确定分群数K
- 钟 docker讲解
- 快看这个机器人,在使用双截棍!| 附正经paper
- 在一台2010年的老电脑上安装黑群辉dsm5.2并完成外网访问与洗白操作
- 课题申报书范文_2018年课题立项申报书范文
- linux su文件删除了,UBUNTU linux 批量删除文件
- 屏幕距离和坐便转换工具_视频分辨率转换器(mp4视频分辨率转换器)V2.0.1 官方版...
- 什么是Lora Mesh网络
- Android系统的指纹开发
- c# rar解压大小_C#解压RAR压缩文件
- 关于设备像素比dpr的理解
- 常用的清楚浮动的办法
- Android集成FireBase
- 如何使用IDM下载电子书
- 规模化生物学:我们为何最终能跨过技术成熟度曲线?
- ValueError: With n_samples=0, test_size=0.2 and train_size=None, the resulting train set will be emp
- 要月入百亿!李想的理想能否实现?
- 多商家入驻商城源码 新零售商城源码