lua脚本相关命令
1、简介
lua是一种比较轻量的脚本语言,可以嵌入应用程序中,能以较小的代价定制功能。在Redis里,也可以通过使用lua脚本来实现特定的效果。
llua脚本是一个和Redis独立的技术,不仅能用在Redis里,还能用在其他场景中。
l我们先使用docker命令创建redis容器再进入容器内部
2、把lua脚本装载到缓存里
l可以通过script load script
命令把lua脚本装载到缓存里,但此时不会执行该脚本,该命令返回的是给定脚本的SHA1校验和。
通过script load
命令,可以把’return 1+2’这段脚本装载到缓存里,从第2行的输出里能看到该脚本的校验和。随后可以通过script exists
命令来判断指定校验和的脚本是否存在于缓存中,该命令用法如下:
3、通过evalsha命令执行缓存中的脚本
可以通过evalsha命令来执行缓存中的脚本,该命令的格式如下:
evalsha sha1 numkeys key [key ...] arg [arg ...]
其中,sha1是缓存中的sha1校验和 numkeys是参数的个数,通过key参数能指定脚本中用到的键,通过arg可以指定脚本的参数。
由于之前创建的脚本中包含了return语句,参数个数是0,因此可以通过如下命令来执行该脚本。
evalsha e13c398af9f2658ef7050acf3b266f87cfc2f6ab 0
第1行evalsha命令的参数是之前装入缓存的lua脚本的sha1校验和,由于该脚本不带参数,所以numkeys参数值是0,从第2行里能看到该脚本返回的结果。
4、清空缓存中lua脚本的命令
可以通过script flush
命令来清空缓存中所有的lua脚本。
5、用eval命令执行lua脚本
在之前的范例中,是把lua脚本装载到缓存中并执行。在实际的项目里,arg指定脚本的参数。
eval script numkeys key [key ...] arg [arg ...]
在第1行里,通过eval命令运行了双引号里的lua脚本,eval命令的参数1表示有1个参数,name和‘Peter’分别对应于脚本里的KEYS[1]和ARGV[1]。由于脚本是通过return语句返回KEYS[1]和ARGV[1]的,因此在第2行和第3行里能看到打印对应的值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?