local userId = ARGV[1] local yueId = ARGV[2] local yueLastRdsKey = ARGV[3] local yueSetRdsKey = ARGV[4] local isExist = redis.call("SISMEMBER",yueSetRdsKey, userId) local lastyueNumber = redis.call("GET",yueLastRdsKey) if( lastyueNumber == false ) then return "库存信息在redis中不存在" end if( tonumber(lastyueNumber) <= 0) then return "预约失败,当前剩下可预约人数为" .. lastyueNumber end if(isExist ~= 0) then return "该用户已预约,无需再次预约" end local addRes = redis.call("SADD",yueSetRdsKey, userId) if (addRes == 0) then return "redis集合加入该用户失败" end redis.call("DECR", yueLastRdsKey) return "ok" -- local function doYue() -- local isExist = redis.call("SISMEMBER",yueSetRdsKey, userId) -- if(isExist ~= 0) -- then -- error("该用户已预约,无需再次预约") -- end -- -- local addRes = redis.call("SADD",yueSetRdsKey, userId) -- if (addRes == 0) -- then -- error("redis集合加入该用户失败") -- end -- -- local lastyueNumber = redis.call("GET",yueLastRdsKey) -- if( lastyueNumber == false ) -- then -- error("库存信息在redis中不存在") -- end -- -- if( tonumber(lastyueNumber) <= 0) -- then -- error("预约失败,当前剩下可预约人数为" .. lastyueNumber) -- end -- redis.call("DECR", yueLastRdsKey) -- end -- -- -- redis.call("MULTI") -- ok, errMsg = pcall( myfunction ) -- if (ok) -- then -- redis.call("EXEC") -- return "ok" -- end -- redis.call("DISCARD") -- return errMsg -- -- -- -- --