zoukankan      html  css  js  c++  java
  • redis脚本

    string lua = @"local counts=redis.call('HLEN',@yhKey) 
    if tonumber(counts)>=tonumber(@places) then
     return 2 
    elseif redis.call('HEXISTS',@yhKey,@bankCard)==1 then
     return 3 
    elseif redis.call('EXISTS',@phone)==1 then
     return 4 
    elseif redis.call('EXISTS',@card)==1 then
     return 5 
    else
     redis.call('SELECT',8)
     local waits=redis.call('DBSIZE')
     if tonumber(counts)+tonumber(waits)<tonumber(@places) then
      redis.call('SETEX',@order,@expiry,@payEnti)
      redis.call('SELECT',7)
      redis.call('SETEX',@phone,@expiry,@payUrl)
      redis.call('SETEX',@card,@expiry,@bankCard)
      return 1 
     else
      return 6
     end 
    end";
    string rr = cache.Do(db => db.ScriptEvaluate(LuaScript.Prepare(lua), new
                        {
                            yhKey = "HROKBank",
                            places = conf.HuaRongPlaces,//名额
                            bankCard = bankCard,
                            card = "HRBank:" + bankCard,
                            phone = "HRPhone:" + user.phoneNo,
                            order = "HROrder:" + OrderNo,
                            expiry = conf.PayTime * 60,//过期时间单位为秒
                            payEnti = JsonConvert.SerializeObject(m),
                            // OrderNo= OrderNo,
                            payUrl = payUrl
                        })).ToString();
  • 相关阅读:
    84最佳买卖股票时机含冷冻期(309)
    83 不同路径 II(63)
    82同路径(62)
    模块与包
    名称空间与作用域
    函数的参数
    函数对象
    函数继续学习中
    python学习day3-上午
    第一个完成程序:通过文件实现注册登录
  • 原文地址:https://www.cnblogs.com/hllive/p/9446849.html
Copyright © 2011-2022 走看看