redis事物简单例子
来源:互联网 发布:淘宝店铺装修在哪里弄 编辑:程序博客网 时间:2024/05/29 18:59
import org.junit.Test;import redis.clients.jedis.Jedis;import redis.clients.jedis.Transaction;public class TranRedis { private Jedis js=new Jedis("localhost",6379); @Testpublic void init(){ js.select(1);//选择o号库 js.set("balance", "1000");//设置余额 js.set("debt", "0");//设置欠费; System.out.println("数据添加成功"); System.out.println("balance:"+js.get("balance")); System.out.println("debt:"+js.get("debt")); }/* * 测试正常状态下 */@Test public void tran1() throws InterruptedException{ js.select(1);//选择o号库 int amtToSubtract=10;//消费js.watch("balance");//监视int balance=Integer.parseInt(js.get("balance"));//余额 if(balance>amtToSubtract){Transaction transaction=js.multi();//开启事物transaction.decrBy("balance", amtToSubtract);//余额减少transaction.incrBy("debt", amtToSubtract);//欠费增加transaction.exec();//执行事物 System.out.println("此次交易成功"); System.out.println("balance:"+js.get("balance")); System.out.println("debt:"+js.get("debt")); }else{js.unwatch();//不监视System.out.println("网络延时,此次交易失败!");System.out.println("数据被修改"); System.out.println("balance:"+js.get("balance")); System.out.println("debt:"+js.get("balance")); }}/* * 测试非正常状态下 */@Test public void tran2() throws InterruptedException{ js.select(1);//选择o号库 int amtToSubtract=10;//消费js.watch("balance");//监视for (int i = 1; i < 7; i++) {System.out.println("第"+i+"秒");Thread.sleep(1000);if(i==5){ System.out.println("在第5秒中,该余额数据已被修改"); js.set("balance", "5"); } }int balance=Integer.parseInt(js.get("balance"));//余额 if(balance>amtToSubtract){Transaction transaction=js.multi();//开启事物transaction.decrBy("balance", amtToSubtract);//余额减少transaction.incrBy("debt", amtToSubtract);//欠费增加transaction.exec(); }else{js.unwatch();System.out.println("网络延时,此次交易失败!");System.out.println("数据被修改"); System.out.println("balance:"+js.get("balance"));System.out.println("debt:"+js.get("debt")); }} }
1.执行init方法
2.执行tran1方法
3.执行tran2方法
阅读全文
0 0
- redis事物简单例子
- redis简单例子
- Redis jedis 简单例子
- Redis sentinel 简单例子
- redis事物
- redis事物
- redis 事物
- Redis事物
- redis事物
- python操作redis简单例子
- python操作redis简单例子
- python操作redis简单例子
- python操作redis简单例子
- python操作redis简单例子
- python操作redis简单例子
- redis安装和简单例子
- python操作redis简单例子
- BDB读、写、删除、更新事物的简单例子。
- 触发器
- Java中的编码
- spring-boot--使用thymeleaf模板
- 采用table+jQuery加载数据,实现数据与表格布局的分离
- [数学模型]双层玻璃的功效
- redis事物简单例子
- Javascript异步编程(四: co 函数库)
- 改进我们的小游戏
- python 使用百度tts 库合成语音
- 数据结构应用(图书借阅系统)
- 8张图理解Java
- 观察者和监听器模式
- 配置环境变量
- JavaScript入门(2)