Redis 实战------java版本代码优化
2017-11-06 20:03
281 查看
代码清单4-5 listItem()函数
原版代码:public boolean listItem( Jedis conn, String itemId, String sellerId, double price) { String inventory = "inventory:" + sellerId; String item = itemId + '.' + sellerId; long end = System.currentTimeMillis() + 5000; while (System.currentTimeMillis() < end) { conn.watch(inventory); if (!conn.sismember(inventory, itemId)){ conn.unwatch(); return false; } Transaction trans = conn.multi(); trans.zadd("market:", price, item); trans.srem(inventory, itemId); List<Object> results = trans.exec(); // null response indicates that the transaction was aborted due to // the watched key changing. if (results == null){ continue; } return true; } return false; }
在实际项目运行的改进代码
public boolean listItem(Jedis conn, String itemId, String sellerId, double price) { //1.执行初始化操作:拼接字符串得到key值 String inventory=new StringBuffer().append("inventory:").append(sellerId).toString(); String item=new StringBuffer().append(itemId).append(".").append(sellerId).toString(); long end = System.currentTimeMillis() + 5000; while (System.currentTimeMillis() < end) { //2.对卖家包裹进行监视 conn.watch(inventory); //3.验证卖家想要销售的商品是否存在与卖家的包裹当中 if (!conn.sismember(inventory, itemId)){ conn.unwatch(); return false; } //商品存在于卖家的包裹之中,开启事物 Transaction trans = conn.multi(); //在商品添加到买卖市场中 trans.zadd("market:", price, item); //移除卖家包裹中的商品 trans.srem(inventory, itemId); //提交事物 List<Object> results = trans.exec(); // null response indicates that the transaction was aborted due to // the watched key changing. //判断事物是否成功执行 if (results == null){ //事物执行失败,继续执行事物 continue; } //事物执行成功,返回 return true; } conn.close(); //超时 return false; }
相关文章推荐
- Java代码在实战中的优化
- 【java】itoo项目实战之优化后具体代码
- Java的redis 操作类-优化通用版本
- java架构师、集群、高可扩展、高性能、高并发、性能优化、Spring boot、Dubbo、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师之路
- Java代码优化方案 J2ME内存优化
- Java代码优化--尽可能地使用stack(栈)变量(方法内部的局部变量)
- JAVA代码优化小技巧
- java 代码优化
- PHP代码优化43条方法实战列表
- 使用内部和匿名类优化Java代码
- 内部类和匿名类优化Java代码
- Java性能优化[2]:字符串过滤实战
- Myeclipse 6.5和7.0两个版本的注册码java的代码
- Java代码的优化策略
- java代码优化
- Java代码优化,策略与方法
- 内部类和匿名类优化Java代码
- Java代码优化,策略与方法
- Java代码优化方法
- JDT编译器对Java代码的编译优化一瞥