Openresty最佳案例 | 第7篇: 模块开发、OpenResty连接Redis
Lua模块开发
在实际的开发过程中,不可能把所有的lua代码写在一个lua文件中,通常的做法将特定功能的放在一个lua文件中,即用lua模块开发。在lualib目录下,默认有以下的lua模块。
在使用这些模块之前,需要在nginx的配置文件nginx.conf中的http模块加上以下的配置:
现在来简单的开发一个lua模块:
在module1.lua文件加上以下的代码:
开发时将所有数据做成局部变量/局部函数;通过 _M导出要暴露的函数,实现模块化封装。
在/usr/example/lua目录下创建一个test_module_1.lua 文件,在该文件中引用上面的module1.lua文件。
加上以下代码:
通过require(“模块名”)来加载模块,如果是多级目录,则需要通过require(“目录1.目录2.模块名”)加载。
在/user/example/example.conf中加上以下的配置:
多次在浏览器访问:http://116.196.177.123/lua_module_1,浏览器显示:
安装redis
linux下安装:
cd /usr/servers
启动redis:
查看是否启动:
终端显示:
可见redis已经启动。
lua连接redis
lua_resty_redis模块地址:https://github.com/openresty/lua-resty-redis
lua_resty_redis 它是一个基于cosocket API的为ngx_lua模块提供Lua redis客户端的驱动。
创建一个test_redis_basic.lua文件
vim /usr/example/lua/test_redis_basic.lua
上面的代码很简单,通过连接池连接Redis,连接上redis后,通过set一对键值对(msg,helloword)到redis中,然后get(msg),并通过ngx.say()返回给浏览器。
vim /usr/example/example.conf,添加以下的配置代码:
浏览器访问:http://116.196.177.123/lua_redis_basic
浏览器显示:
lua_resty_redis支持所有的redis指令,本身Redis就支持lua语言操作。所以lua_resty_redis模块能够提高所有的redis操作的功能。
在很多时候,Redis是设置了口令的,连接时,如果需要验证口令,需要添加 local res, err = red:auth(“foobared”),示例代码如下:
更多请关注的官方文档https://github.com/openresty/lua-resty-redis
和开涛的博客http://jinnianshilongnian.iteye.com/blog/2187328
- 点赞
- 收藏
- 关注作者
评论(0)