lua脚本使用redis

时间:2024-11-22 07:06:19

1 安装工具包

luarocks install redis-lua

2 使用lua语言连接redis

local MyFirstHandler = {
    -- 插件的优先级,决定了插件的执行顺序;数字越大,优先级越高,越早执行
    PRIORITY = 1101,
    -- 插件的版本号
    VERSION = "0.1.0-1",
}

-- 在Nginx worker启动时执行
function MyFirstHandler:init_worker()
        kong.log("data:init_worker") -- 用来确认是否加载成功的日志
end

-- 收到请求,还没进入server处理时执行, 
-- 此处判断路径如果不是/sayHello和/sayBye直接返回字符串"only support /sayHello and /sayBye"
function MyFirstHandler:rewrite()
        kong.log("MyFirstHandler:rewrite")
        local rawPath = kong.request.get_raw_path() -- 使用PDK获取请求URL
        kong.log("rewrite rawpath: " .. rawPath)
        if rawPath ~= "/sayHello" and rawPath ~= "/sayBye" then
                kong.log("not support rawPath: " .. rawPath)
                return kong.response.exit(404, "only support /sayHello and /sayBye")
        end
        kong.log("rewrite finish")
end

function MyFirstHandler:access()
        kong.log("access")
        kong.service.request.set_header("req-key", "plugin-header-value")
end

-- 注意,即使rewrite中使用了kong.response.exit, 这里也会执行
function MyFirstHandler:header_filter()
        kong.log("header_filter")
        local header = kong.service.response.get_header("rsp-key")
        if header ~= nil then
          kong.log(header)
          kong.response.set_header("rsp-key", header .. " modify by plugin")
        end
end

function MyFirstHandler:body_filter()
        kong.log("body_filter")
end

return MyFirstHandler

3 更多redis-lua包的使用可以去官网找,给一个比较全的地址方便检索

Redis-Lua 入门指南:使用 Lua 脚本操作 Redis-易源AI资讯 | 万维易源

看了一下目前就这个文章内容比较全,完全够使用