redis 执行 xxx.luaxxx.lua 脚本如何传参数。格式是什么

redis执行xxx.luaxxx.lua脚本如何传参数。格式是什么... redis 执行 xxx.luaxxx.lua 脚本如何传参数。格式是什么 展开
 我来答
凡烦梵
2019-02-22 · TA获得超过152个赞
知道小有建树答主
回答量:122
采纳率:75%
帮助的人:9万
展开全部
在Redis中执行Lua脚本有两种方法:eval和evalsha
1.eval
eval 脚本内容 key个数 key列表 参数列表
如果Lua脚本较长,还可以使用redis-cli-eval直接执行文件。
客户端如果想执行Lua脚本,首先在客户端编写好Lua脚本代码,然后把脚本作为字符串发送给服务端,服务端会将执行结果返回给客户端。
2.evalsha
将Lua脚本加载到Redis服务端,得到该脚本的sha1校验和,evalsha命令使用sha1作为参数可以直接执行对应的Lua脚本,避免每次发送Lua脚本的开销。这样客户端就不需要每次执行脚本内容,而脚本也会常驻在服务端,脚本内容指滚得到了复用。
加载脚本: script load命令可以将脚本内容加载到Redis内存中。
lua的Redis API
lua可以使用redis.call函数实现对Redis的访问
redis.call(“set”,”hello”,”world”)
redis.call(“get”,”hello”)
除此之外Lua还可以使用redis.pcall函数实现对Redis的调用,redis.call和redis.pcall的不同在于,如果redis.call执行失败,那么脚本执行结束会直接返回错误,而redis.pcall会忽略错误继续执行脚本。
Lua脚本功能为Redis开发和运维人员带来的如下三个好处:
1.Lua脚本在Redis中是原子执行的,侍袜执行过程中间不会插入其他命令。
2.Lua脚本可以帮助开发和运维人员创造出自己定制的命令,并可以将这些命老逗激令常驻在Redis内存中,实现复用的效果。
3.Lua脚本可以将多条命令一次性打包,有效地减少网络开销。
Redis如何管理Lua脚本
1.script load
此命令用于将Lua脚本加载到Redis内存中
2.script exists
scripts exists sha1 [sha1 …]
此命令用于判断sha1是否已经加载到Redis内存中
3.script flush
此命令用于清除Redis内存已经加载的所有Lua脚本,在执行script flush后,sha1不复存在。
4.script kill
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式