Nginx + Lua + redis (一)(转)
使用 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
http://blog.csdn.net/vboy1010/article/details/7892120
Nginx + Lua + redis (一)(转)的更多相关文章
- Nginx+Lua+Redis 对请求进行限制
Nginx+Lua+Redis 对请求进行限制 一.概述 需求:所有访问/myapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器 ...
- Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!
Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Disc ...
- nginx lua redis 访问频率限制(转)
1. 需求分析 Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等. 用Nginx+Lua+Redis来做访问限制主要是考虑到高并发环境下快速访问控制的 ...
- nginx+lua+redis构建高并发应用(转)
nginx+lua+redis构建高并发应用 ngx_lua将lua嵌入到nginx,让nginx执行lua脚本,高并发,非阻塞的处理各种请求. url请求nginx服务器,然后lua查询redis, ...
- 基于nginx+lua+redis高性能api应用实践
基于nginx+lua+redis高性能api应用实践 前言 比较传统的服务端程序(PHP.FAST CGI等),大多都是通过每产生一个请求,都会有一个进程与之相对应,请求处理完毕后相关进程自动释放. ...
- nginx限制请求之三:Nginx+Lua+Redis 对请求进行限制
相关文章: <高可用服务设计之二:Rate limiting 限流与降级> <nginx限制请求之一:(ngx_http_limit_conn_module)模块> <n ...
- nginx+lua+redis 处理APK包替换
nginx + lua +redis 安装与使用入门: http://huoding.com/2012/08/31/156 nginx httpEchoModule : http://wiki.ngi ...
- nginx+lua+redis
git clone --branch master https://github.com/openresty/lua-resty-redis.git yum install openssl opens ...
- nginx+lua+redis实现灰度发布_test
nginx+lua+redis实现灰度发布: 灰度发布是指在黑白之间能够平滑过渡的一种方式 AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见, ...
- nginx+lua+redis初体验
1.下载nginx.lua.redis nginx下载地址 wget http://nginx.org/download/nginx-1.8.0.tar.gz lua下载地址 wget http:/ ...
随机推荐
- Java读取本地文件,并显示在JSP文件中
当我们初学IMG标签时,我们知道通过设置img标签的src属性,能够在页面中显示想要展示的图片.其中src的值,可以是磁盘目录上的绝对,也可以是项目下的相对路径,还可以是网络上的图片路径.在存 ...
- Eclipse 未开始 【Ubuntu】
/usr/lib/eclipse/configuration/1408532831122.log : !SESSION 2014-08-20 19:07:11.055 ---------------- ...
- hdu 2451 Simple Addition Expression(数位DP )成败在于细节
亚洲区域赛的题,简单的数位DP题,注重细节. 任何细节都有可能导致wa,所以没有绝对的水题. 把握好细节,此题便A. #include<stdio.h> __int64 getans(__ ...
- 使用注解实现 bean 转 csv
csv 文件是 aaa,bbb,ccc aaa,bbb,ccc 保存 这里的要求是 List<T> 线性表的类型 转换成 类别似 html 中 table的格式,即第一行是 head 后面 ...
- Volley该框架使用了大量的请求图片
尊重原创 http://write.blog.csdn.net/postedit/26142025 代码下载:http://download.csdn.net/detail/yuanzeyao2008 ...
- SqlServer操作远程数据库
exec sp_addlinkedserver 'srv2','','mssql2008','服务器IP' exec sp_addlinkedsrvlogin 'srv2','false',null, ...
- linux下golang
linux下golang的配置 linux下golang的配置 之前开发golang一直在windows下,今天在linux下试了一下 ,遇到一些梗,比如go 找不到 sync包.花了一小时全部解决, ...
- ubuntu下ssh使用 与 SCP 使用
1 ssh远程登录服务器 ssh username@remote_ip #将username换成自己的用户名,将remote_ip换成远程服务器的ip地址 2 将文件/文件夹从远程服务器拷至本地(sc ...
- 158个JAVA免豆精品资料汇总
附件完整版下载地址: http://down.51cto.com/data/431561 附件部分预览~ java中国移动收费系统[源代码] http://down.51cto.com/data/70 ...
- SVN 的revert操作