sxd-lua相关操作
2021-07-14 17:39:42 0 举报
sxd学习用
作者其他创作
大纲/内容
传参数形式一样
redis-cli SCRIPT KILL
Lua 环境安装Linux 系统上安装Linux & Mac上安装 Lua 安装非常简单,只需要下载源码包并在终端解压编译即可,本文使用了5.3.0版本进行安装:curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gztar zxf lua-5.3.0.tar.gzcd lua-5.3.0make linux testmake installMac OS X 系统上安装curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gztar zxf lua-5.3.0.tar.gzcd lua-5.3.0make macosx testmake install接下来我们创建一个 HelloWorld.lua 文件,代码如下:print(\"Hello World!\")执行以下命令:$ lua HelloWorld.lua输出结果为:Hello World!Window 系统上安装 Luawindow下你可以使用一个叫\"SciTE\"的IDE环境来执行lua程序,下载地址为:本站下载地址:LuaForWindows_v5.1.4-46.exeGithub 下载地址:https://github.com/rjpcomputing/luaforwindows/releasesGoogle Code下载地址 : https://code.google.com/p/luaforwindows/downloads/list双击安装后即可在该环境下编写 Lua 程序并运行。你也可以使用 Lua 官方推荐的方法使用 LuaDist:http://luadist.org/本
✘ duandian@MacBook-Pro-2 ~ redis-cli script load \"$(cat /Users/duandian/Desktop/test.lua)\" \"b5b2d481df21b22855dadc4317c6bcce985704b0\"
【redis-cli】SCRIPT EXISTS aab13e3a2a7dabc03512a1f37461bdb5185af1c8(加载时候返回的值,如果找不到,可以重新加载一遍,hash值不变)1) (integer) 1 返回1存在,0 不存在
local a=3local b=KEYS[1]return a+b
基本使用
redis-cli evalsha \"b5b2d481df21b22855dadc4317c6bcce985704b0\" 1 123 (integer) 1
安装
SCRIPT EXISTS:清除所有的脚本
SCRIPT KILL
openresty
redis-cli eval ....传参
redis 只执行一次,下次再执行的时候,需要在上传
如果里面的内容变更了,再次加载的时候,hash值会变成另外一个,原来的也保留,并没有被删除
命令帮助
redis-cli script help
加载
while true do end
杀掉异常
lua脚本
duandian@MacBook-Pro-2 ~/Desktop redis-cli eval \"return 1+1\" 0(integer) 2 duandian@MacBook-Pro-2 ~/Desktop redis-cli eval \"return 1+1\
local a1 = KEYS[1]local a2 = KEYS[2]local b1 = ARGV[1]local b2 = ARGV[2]return a1
只是加载到缓存,redis重启后就没有了返回一个sha值重复提交hash值是同一个
duandian@MacBook-Pro-2 ~ redis-cli --eval /Users/duandian/Desktop/test.lua 1一直卡在这里,没有返回(或者连接执行 redis-cli eval \"while true do end \" 0 或者连接到redis执行 eval \"while true do end \" 0)
判断是否存在
弊端
redis上传lua脚本
清除
local key = KEYS[1]local count = redis.call(\"incr\
执行redis
***** 打印,输出: print (\
redis使用lua
SHUTDOWN NOSAVE
duandian@MacBook-Pro-2 ~ redis-cli --eval /Users/duandian/Desktop/test.lua 2 6(integer) 5
redis是单线程的,执行lua脚本时,如果执行时间过长,能接受连接,但是不能返回结果,会卡在这里。导致其他客户端获取不到值就返回了
local a1 = KEYS[1]local a2 = KEYS[2]local b1 = ARGV[1]local b2 = ARGV[2]return a2
脚本
local a1 = KEYS[1]local a2 = KEYS[2]local b1 = ARGV[1]local b2 = ARGV[2]return b1
使用
SCRIPT help
duandian@MacBook-Pro-2 ~ redis-cli --eval /Users/duandian/Desktop/test.lua count(integer) 1
0 条评论
下一页