将其他LUA模块安装到Redis中

我正在尝试让Redis允许EVAL( http://redis.io/commands/EVAL)发出HTTP请求.

两个模块:LuaCURL和Luasocket提供此功能. Redis代码一个带有附加模块的目录(例如cjson)http://download.redis.io/redis-stable/deps/lua/src/,我尝试添加luacurl.c但是我收到错误后收到错误.我已经设法编译它启用os.execute – 通过编辑scripting.c – 它允许我运行curl命令,但这是一个糟糕的解决方案.

如何在Redis的Lua中编译HTTP请求?

大概最简单的方法就是拥有一个独立的luasocket.so文件,但我不知道该怎么做.

解决方法

不用担心,我所需要的只是睡一觉才能有一个清醒的头脑.

我下载了http://files.luaforge.net/releases/luacurl/luacurl并将luacurl.c移动到/ deps / lua / src /文件夹并从第23行编辑

#include <lauxlib.h>

#include "lauxlib.h"

然后在/ deps / lua / src / Makefile(Lua的makefile,而不是Redis的)转到第30行并找到

lua_cjson.o

在它旁边添加“luacurl.o”就像这样

lua_cjson.o luacurl.o

然后在/ src / Makefile(Redis的makefile,而不是Lua的)中更改第54行

FINAL_LIBS=-lm

FINAL_LIBS=-lm -lcurl

最后,确保已安装“yum install curl-devel”然后进行编译.

请记住,在服务器忙于使用Lua脚本时,没有其他客户端可以执行命令.

相关文章

1.github代码实践源代码是lua脚本语言,下载th之后运行thmai...
此文为搬运帖,原帖地址https://www.cnblogs.com/zwywilliam/...
Rime输入法通过定义lua文件,可以实现获取当前时间日期的功能...
localfunctiongenerate_action(params)localscale_action=cc...
2022年1月11日13:57:45 官方:https://opm.openresty.org/官...
在Lua中的table(表),就像c#中的HashMap(哈希表),key和...