高并发的系统中,redis的使用是非常频繁的,而lua脚本则更是锦上添花。因为lua脚本本身执行的时候是一个事务性的操作,不会掺杂其他外部的命令,所以很多关键的系统节点都会用redis+lua来实现一致性的操作请求。但是在实际开发过程中,由于redis lua脚本调试难的问题,导致大量的时间耗费在了这上面。如果有什么方案能够让我们像利用IDEA调试java一样简便去调试redis lua脚本,那该是很幸福的事儿了。
通过不断的寻找,终于也找到了这种方式,下面就总体的来介绍一下。
1. 下载ZeroBraneStudio,解压到本地环境,然后找到解释器路径,比如我本机是D:\soft\pkulchenko-ZeroBraneStudio-7a8027e\bin\lua.exe,那么我们就可以通过如下的cmd命令,将D:\soft\pkulchenko-ZeroBraneStudio-7a8027e\bin\添加到Path环境变量中即可。cmd命令如下:
set path=%path%;D:\soft\pkulchenko-ZeroBraneStudio-7a8027e\bin\;
2. 下载luaRocks,你可以理解为它类似于python的pip包管理工具,可以利用此工具下载相应的lua包。下载地址为:http://luarocks.github.io/luarocks/releases/,注意选择其中带有win32字样的包,不要选择带有windows字样的包,因为win32字样的包里面有install.bat。下载完毕后,解压,运行install.bat安装即可。
3. 安装redis及调试相关的类库。举一反三,既然能安装redis相关的,那么也能安装nginx相关的,所以我们也可以利用此方法来搞定nginx lua开发:
luarocks install remdebug
luarocks install prtr-dump
luarocks install redis-lua
4. 打开ZeroBraneStudio,建立lua脚本,开始进行调试吧,具体步骤如下:
首先,在lua脚本中,加入下面这段代码,以便于让lua脚本支持调试:
local redis = require 'redis' local host = "192.168.155.126" local port = 6379 client = redis.connect(host, port) redis.call = function(cmd, ...) return assert(loadstring('return client:'.. string.lower(cmd) ..'(...)'))(...) end
从上面可以看出,我们先进行了redis的配置操作,然后