zoukankan      html  css  js  c++  java
  • 关于使用 lua 脚本抢红包

    1 java代码

    package com.robert.RedisTest;
    
    import redis.clients.jedis.Jedis;
    
    public class RedisClient {
        
        public static void main(String[] args) {
            System.out.println(getHongBao());
            System.out.println();
        }
        
        public static void doAppend(StringBuilder script,String expression){
            script.append(expression+"
    ");
        }
        
        public static int getHongBao(){
            Jedis jedis = new Jedis("localhost", 6379);
            jedis.set("name","robert");
            StringBuilder script = new StringBuilder();
            doAppend(script,"local result = 0");
            doAppend(script,"local afterDescNum = redis.call('decr', KEYS[1])");
            doAppend(script,"if afterDescNum>=0 then");
            doAppend(script,"result=1");
            doAppend(script,"else ");
            doAppend(script,"result=0");
            doAppend(script,"redis.call('set', KEYS[1], 0)");
            doAppend(script,"end");
            script.append("return result");
            Object result = jedis.eval(script.toString(),1,"hongbaoNum");
            int flag = Integer.parseInt(String.valueOf(result));
            System.out.println(Thread.currentThread().getName()+" : "+flag);
            return flag;
        }
    }

    qianghongbao.lua

    local result = 0
    local afterDescNum = redis.call('decr', KEYS[1])
    if afterDescNum>=0 then
    result=1
    else 
    result=0
    redis.call('set', KEYS[1], 0)
    end
    return result
  • 相关阅读:
    第四周JSP作业
    jsp第二次作业
    3.4软件管理与测试作业
    jsp3月3日作业
    课后listview作业
    安卓sql
    activity带数据跳转
    answers
    阿里云ESC无法使用python发送邮件的问题
    Ubuntu 更改时区
  • 原文地址:https://www.cnblogs.com/mengjianzhou/p/5830306.html
Copyright © 2011-2022 走看看