nginx lua redis集群(nginx+redis)

本文介绍如何使用Nginx+Lua+Redis构建高并发Web应用。Curl请求Nginx,Nginx通过Lua查询Redis并返回json数据。1.安装1.安装lua-redis-parser复制code代码如下:#git克隆#expor...

本文介绍如何使用Nginx+Lua+Redis构建高并发Web应用。 Curl请求Nginx,Nginx通过Lua查询Redis并返回json数据。

1. 安装

nginx lua redis集群(nginx+redis)

1.安装lua-redis-parser

复制code代码如下:

#git克隆https://github.com/agentzh/lua-redis-parser.git

#export LUA_INCLUDE_DIR=/usr/include/lua5.1

#make CC=gcc

#make install CC=gcc2,安装json

复制code代码如下:

#wget http://files.luaforge.net/releases/json/json/0.9.50/json4lua-0.9.50.zip

#解压json4lua-0.9.50.zip

#cp json4lua-0.9.50/json/json.lua /usr/share/lua/5.1/3,安装redis-lua

复制code代码如下:

#git克隆https://github.com/nrk/redis-lua.git

#cp redis-lua/src/redis.lua /usr/share/lua/5.1/

2. 配置

复制code代码如下:

#vi /etc/nginx/nginx.conf

http{

包括mime.types;

default_type 应用程序/八位字节流;

access_log 日志/access.log;

发送文件;

tcp_nopush 开启;

tcp_nodelay 开启;

keepalive_timeout 60;

types_hash_max_size 2048;

服务器令牌关闭;

lua_code_cache 开启;

上游redis_pool {

服务器192.168.1.105:6379;

保活1024单;

//定义连接池大小。当连接数达到此数量时,后续连接将是短连接。

}

服务器{

听80;

服务器名称192.168.1.104;

位置/get_redis{

内部的;

set_unescape_uri $key $arg_key;

redis2_query hgetall $key;

redis2_pass redis_pool;

}

位置/json {

content_by_lua_file conf/test_redis.lua;

}

}

}

3. 测试

1. 编写脚本

在上面的配置中编写test_redis.lua脚本

复制code代码如下:

#vi test_redis.lua

本地json=require('json')

本地解析器=require('redis.parser')

本地res=ngx.location.capture('/get_redis',{args={ key=ngx.var.arg_key }})

如果res.status==200 那么

回复=parser.parse_reply(res.body)

值=json.encode(回复)

ngx.say(值)

a=json.decode(值)

ngx.say(a[2])

结束2.构建数据

复制code代码如下:

#redis-cli -h 192.168.1.105 -p 6379

redis 192.168.1.105:6379HMSET testnlr www www.tuohang.net bbs bbs.tuohang.net3.开始测试

复制code代码如下:

#curl 'http://192.168.1.104/json?key=testnlr'

['www', 'www.tuohang.net', 'bbs', 'bbs.tuohang.net']

相关推荐

返回顶部