OpenResty-3.OpenResty使用Redis

openresty模块

1
https://github.com/openresty/lua-nginx-module#readme

其中redis模块叫做lua-resty-redis,可以在上述页面进行搜索

1.一个完整的demo

使用起来不困难,也不必深究:redis的API、luajit的基本语法。

需要注意的是在openresty中已经有了类库,也就是下面require “resty.redis”

也就是我们如果加入新的模块,例如引进kafka模块,需要进行相应拷贝,例如下面是一次添加kafka模块:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
local redis = require "resty.redis"
local red = redis:new()
red:set_timeout(1000) -- 1 sec
local ok, err = red:connect("127.0.0.1", 6379)
if not ok then
ngx.say("failed to connect: ", err)
return
end
ok, err = red:set("dog", "an animal")
if not ok then
ngx.say("failed to set dog: ", err)
return
end
ngx.say("set result: ", ok)
local res, err = red:get("dog")
if not res then
ngx.say("failed to get dog: ", err)
return
end
if res == ngx.null then
ngx.say("dog not found.")
return
end