Redis使用lua脚本实现库存扣减
2023/5/16 14:22:08
本文主要是介绍Redis使用lua脚本实现库存扣减,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
EVAL script numkeys key [key ...] arg [arg ...]
redis> EVAL "return { KEYS[1], KEYS[2], ARGV[1], ARGV[2], ARGV[3] }" 2 key1 key2 arg1 arg2 arg3 1) "key1" 2) "key2" 3) "arg1" 4) "arg2" 5) "arg3"
EVALSHA sha1 numkeys key [key ...] arg [arg ...]
不同的是这里传入的不是脚本字符串,而是一个加密串 sha1。这个 sha1 是从哪来的呢?它是通过另一个命令 SCRIPT LOAD 返回的,该命令是预加载脚本用的。
从脚本与 Redis 交互
可以通过
两者几乎一模一样。两者都执行 Redis 命令及其提供的参数(如果这些参数表示格式正确的命令)。但是,这两个函数之间的区别在于处理运行时错误(例如语法错误)的方式。调用函数引发的错误redis.call()
直接返回给执行它的客户端。相反,调用redis.pcall()
函数时遇到的错误将返回到脚本的执行上下文,而不是进行可能的处理。
-- 调用Redis的get指令,查询活动库存,其中KEYS[1]为传入的参数1,即库存key local c_s = redis.call('get', KEYS[1]) -- 判断活动库存是否充足,其中KEYS[2]为传入的参数2,即当前抢购数量 if not c_s or tonumber(c_s) < tonumber(KEYS[2]) then return 0 end -- 如果活动库存充足,则进行扣减操作。其中KEYS[2]为传入的参数2,即当前抢购数量 redis.call('decrby',KEYS[1], KEYS[2])
SCRIPT FLUSH |
|
SCRIPT LOAD script |
|
这篇关于Redis使用lua脚本实现库存扣减的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识