OpenResty最佳案例 | 第7篇: 模块开发、OpenResty连接Redis

网友投稿 873 2022-05-30

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

浏览器显示:

Openresty最佳案例 | 第7篇: 模块开发、OpenResty连接Redis

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

Lua Redis

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker的基本组成要素都有哪些?
下一篇:chrome开发者助手插件v2.10发布,提升开发效率不再只是口号
相关文章