lua脚本

作者: Britney_z | 来源:发表于2019-04-17 18:42 被阅读0次

注意:脚本不支持事务

在做商品库存扣除时,如果库存大于扣除的数量,则扣除。在并发情况下会出现,多次扣除的情况,可以使用lua脚本来操作。

lua脚本:

local count = redis.call('get',KEYS[1])

if count >= ARGV[1] then

redis.call('DECRBY',KEYS[1],ARGV[1]);

return 1;

end

return 0 


代码调用

DefaultRedisScript script =new DefaultRedisScript();

script.setResultType(Long.class);

script.setScriptSource(new ResourceScriptSource(new

        ClassPathResource("t.lua")));

List keys =new ArrayList<>();

//商品Id

keys.add("productId1");

//扣除数量

int delCount=2;

redisTemplate.execute(script, keys,delCount);

后面会更新脚本细节

相关文章

网友评论

      本文标题:lua脚本

      本文链接:https://www.haomeiwen.com/subject/kcpiwqtx.html