• Redis的实现(java)


    日常操作

    public static void main(String[] args)
        {
            Jedis jedis = new Jedis("192.168.222.129", 6379);
            
            //1、开启事务
            Transaction transaction = jedis.multi();
            
            //2、执行
            transaction.set("k4", "v4");
            transaction.set("k5", "v5");
            
            //3、提交事务
            transaction.exec();
            
            //4、放弃事务
            //transaction.discard();
        }

    加锁事务

     public static void main(String[] args)
        {
            TestTx testTx = new TestTx();
            boolean retValue = testTx.transMethod();
            System.out.println("main=====return value " + retValue);
        }
        
        private boolean transMethod()
        {
            // TODO Auto-generated method stub
            Jedis jedis = new Jedis("192.168.222.129", 6379);
            int balance; //可用余额
            int debt;//欠额
            int pay = 10;//实际话费金额
            
            jedis.watch("balance");
            balance = Integer.parseInt(jedis.get("balance"));
            if (balance < pay)
            {
                jedis.unwatch();
                System.out.println("您的余额不足");
                return false;
            }
            else
            {
                System.out.println("============开会消费========");
                //1、开启事务
                Transaction transaction = jedis.multi();
                //2、执行
                transaction.decrBy("balance", pay);
                transaction.incrBy("debt", pay);
                //3、提交事务
                transaction.exec();
                balance = Integer.parseInt(jedis.get("balance"));
                debt = Integer.parseInt(jedis.get("debt"));
                
                System.out.println("余额: " + balance);
                System.err.println("花费: " + debt);
                return true;
            }
        }

    结果

    ============开会消费========
    余额: 90
    main=====return value true
    花费: 10
  • 相关阅读:
    Swift协议+代理
    socket编程详解
    Sublime Text 3下 Emmet 使用小技巧
    sublime text3 针对于前端开发必备的插件
    Emmet使用手册
    使用Emmet(前身Zen Coding)加速Web前端开发
    Emmet的高级功能与使用技巧
    RSS订阅推荐
    UIView中常见的方法总结
    技术博客rss订阅源收集
  • 原文地址:https://www.cnblogs.com/karrya/p/11282963.html
Copyright © 2020-2023  润新知