Nginx + Lua + redis (一)
来源:互联网 发布:淘宝店铺最迟多久发货 编辑:程序博客网 时间:2024/06/01 08:21
使用 Lua 脚本语言操作 Redis。
由于大量的 Lua 代码写在 Nginx 中,会使配置文件显得很繁琐,所以这里使用 content_by_lua_file 来引入 Lua脚本文件。
要使用 content_by_lua_file,需要安装 nginx_lua_module 模块。
安装介绍,猛击这里:nginx_lua_module
大神 章亦春 提供了一个很方便的开发包,如下:
- git clone https://github.com/agentzh/lua-resty-redis.git
该包中,有一个 Lib 目录,将 Lib 目录下的文件和子目录拷贝至目录 /data/www/lua
在 Nginx 配置文件中,需要加一行代码,以便引入 redis.lua。
注:加在 http 段里。
- lua_package_path "/data/www/lua/?.lua;;";
为了使得 lua 脚本的修改能及时生效,需要加入一行代码,如下:
注:在 server 段里,加入代码,如果不加此代码或者设置为 on 时,则需要重启 Nginx。
- lua_code_cache off;
在 Nginx 配置文件中,加入一个Location:
- location /lua {
- content_by_lua_file /data/www/lua/test.lua;
- }
注:引入 test.lua 脚本文件
Lua 脚本文件:test.lua。
- local redis = require "resty.redis"
- local cache = redis.new()
- local ok, err = cache.connect(cache, '127.0.0.1', '6379')
- cache:set_timeout(60000)
- if not ok then
- ngx.say("failed to connect:", err)
- return
- end
- res, err = cache:set("dog", "an aniaml")
- if not ok then
- ngx.say("failed to set dog: ", err)
- return
- end
- ngx.say("set result: ", res)
- local res, err = cache: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
- ngx.say("dog: ", res)
- local ok, err = cache:close()
- if not ok then
- ngx.say("failed to close:", err)
- return
- end
测试结果如下:
- [root@localhost conf]# curl http://localhost/lua
- set result: OK
- dog: an aniaml
成功!
0 0
- Nginx + Lua + redis (一)
- Nginx + Lua + redis (一)
- redis Lua脚本(一)
- nginx+lua+redis
- Nginx+Lua+Redis实例
- nginx+lua+redis 使用方法
- nginx+lua+redis安装
- nginx+lua+redis搭建
- nginx+lua+redis
- Nginx+Lua访问Redis
- nginx + lua + redis
- Nginx + Lua + Redis
- nginx+lua+redis使用
- nginx lua redis 测试
- nginx+lua+redis(openresty)配置
- nginx+redis+lua 共享内存
- nginx+lua+redis防刷,lua代码
- nginx+lua tips (一)
- linux命令which whereis locate 命令
- Hibernate查询方式及关联
- Spring 源码解读 推荐流程
- Hive 查询
- 设计模式之模板方法模式---template method
- Nginx + Lua + redis (一)
- iOS开发之多线程(线程间的通信)
- 【Material Design视觉设计语言】UI组件设计(八):列表
- mysqladmin命令记忆
- 点击文字链接提交Form表单
- Activiti流程变量的设置与获取(五)
- UIScrollView
- unity日本漫画风冷兵器动作RPG游戏《武士2复仇》源码
- 安装MongoDB遇到问题