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的事物相关推荐

  1. mysql 字段扩容_解决DB2事物日志满、扩充表字段长度和表空间的命令

    一.通常我们在使用db2导入数据或进行别的操作时会遇到事物日志已满的情况,导致操作无法继续. 在windows系统中,我们可先db2 get db cfg for dbname(要修改的数据库名) 来 ...

  2. 事物的级别_浅谈MySQL并发控制:隔离级别、锁与MVCC

    推荐阅读: 恕我直言!收藏这个MySQL文档,你其余的MySQL学习资料都可以扔了 前言 如果数据库中的事务都是串行执行的,这种方式可以保障事务的执行不会出现异常和错误,但带来的问题是串行执行会带来性 ...

  3. iOS FMDB之FMDatabaseQueue(事物与非事物)

    事物与非事物 事物是一个并发控制的基本单元,所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 事物与非事物,简单的举例来说就是,事物就是把所有的东西打包在一 ...

  4. Mysql 索引 事物

    索引 针对庞大数据 加速查询 缺点 占用空间 分类: 普通索引: 通过 index 创建 唯一索引: 就是 unique key 主键索引: 就是 primary key 联合索引(多列)" ...

  5. JFinal 源码导读第八天(1) Db.tx 事物

    为什么80%的码农都做不了架构师?>>>    1.接上面的事物介绍 /*** IAtom support transaction of database.* It can be i ...

  6. @Transactional-同一个类中方法自调,调用方法事物失效

    问题分析 一个类中的方法调用另一个事物传播性为创建事物的方法,调用的方法事物失效? SpringAOP 代理的Service对象调用了其方法,这个方法再去调用这个Service中的其他方法是没有使用A ...

  7. jpa SessionFactory事物失效

    前言: 因为项目中使用jpa的SessionFactory用@Autowired的方式来操作Hibernate的Session,死活开不了事物,最后终于在一篇博客的帮助下,了解到使用SessionFa ...

  8. jdbc事物回滚是否需要重新commit 不需要

    .... Connection con = null; Statement st = null; try{     Class.forName("oracle.jdbc.driver.Ora ...

  9. 付睿:对新事物的追寻之旅 | 优秀毕业生专访

    [ 导读 ] 清华-青岛数据科学研究院(以下简称"数据院")自2014年4月成立以来,秉承"学校统筹,问题引导,社科突破,商科优势,工科整合,业界联盟"24字指 ...

最新文章

  1. mysql 导入8msql文件_MySQL导入大容量SQL文件数据问题
  2. Android组件系列----Activity的生命周期
  3. kmeans中的k的含义_聚类的Python实现(二):确定分群数K
  4. 钟 docker讲解
  5. 快看这个机器人,在使用双截棍!| 附正经paper
  6. 在一台2010年的老电脑上安装黑群辉dsm5.2并完成外网访问与洗白操作
  7. 课题申报书范文_2018年课题立项申报书范文
  8. linux su文件删除了,UBUNTU linux 批量删除文件
  9. 屏幕距离和坐便转换工具_视频分辨率转换器(mp4视频分辨率转换器)V2.0.1 官方版...
  10. 什么是Lora Mesh网络
  11. Android系统的指纹开发
  12. c# rar解压大小_C#解压RAR压缩文件
  13. 关于设备像素比dpr的理解
  14. 常用的清楚浮动的办法
  15. Android集成FireBase
  16. 如何使用IDM下载电子书
  17. 规模化生物学:我们为何最终能跨过技术成熟度曲线?
  18. ValueError: With n_samples=0, test_size=0.2 and train_size=None, the resulting train set will be emp
  19. 要月入百亿!李想的理想能否实现?
  20. 多商家入驻商城源码 新零售商城源码

热门文章

  1. 常用系统存储过程有:
  2. 恢复linux里被误删除的文件
  3. Exchange 发送方式(Send As)和代表发送(Send on behalf)的区别
  4. linux下挂载移动硬盘
  5. dockone上2015.08 Docker有价值文章
  6. 哎!马上要涉水了,装修的水!
  7. PKU2019暑期学堂 游记
  8. PAT A1065 A+B and C (64bit) (20 分)
  9. 从刷票了解如何获得客户端IP
  10. HTML语言:经典笔记(ZT)