秒杀库存控制 示例方案:使用LUA脚本实现 由于redis是单线程处理,修改数据不需要上锁,调用LUA脚本可视为一个原子的操作,能高效的执行和计算。参考如下: local n tonumber(ARGV[1]) if not n or n 0 then return 0 end local vals redis.call("HMGET", KEYS[1], "total", "booked", "remain"); local booked tonumber(vals[2]) local remain tonumber(vals[3]) if booked < remain then redis.call("HINCRBY", KEYS[1], "booked", n) redis.call("HINCRBY", KEYS[1], "remain", n) return n; end return 0