Redis 原子化库存扣减,

基本信息

案例ID:239026

技术顾问:怀然 - 4年经验 - 成都银杏酒店

联系沟通

微信扫码,建群沟通

项目名称:Redis 原子化库存扣减,

所属行业:生活消费 - 房产家居

->查看更多案例

案例介绍

2. 原子扣减逻辑实现(Lua 脚本)
为避免“读取-判断-写入”三步操作在并发环境下的竞态条件,将整个检查与扣减逻辑封装为一段 Lua 脚本,利用 Redis 单线程执行 Lua 脚本的特性保证原子性。

Lua 脚本内容:

lua

复制

下载
-- KEYS[1]: 库存Key
-- ARGV[1]: 请求扣减数量
local key = KEYS[1]
local requested = tonumber(ARGV[1])
local current = tonumber(redis.call('GET', key) or 0)

if current >= requested then
redis.call('DECRBY', key, requested)
return 1 -- 扣减成功
else
return 0 -- 库存不足
end

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在1小时内与您联系,1小时内精准确定人才

微信接收人才推送

关注猿急送微信平台,接收实时人才推送

接收人才推送
联系需求方端客服
联系需求方端客服