好的,谢谢春哥,下面是我的最小化代码
nginx.conf
-----------------------------------
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
upstream memc_pool {
server 127.0.0.1:11211;
keepalive 1024 single;
}
server {
listen 8080;
#memcache interface
location = /memc {
#internal;
set $memc_cmd $arg_cmd;
set $memc_key $arg_key;
set $memc_value $arg_val;
set $memc_exptime $arg_exptime;
memc_pass '127.0.0.1:11211';
#memc_pass memc_pool;
}
#proccess push
location ~ ^.*/(infor_push.action|push_push.do)$ {
lua_code_cache off;
content_by_lua_file 'lua/push.lua';
}
}
}
--------------------------------------------
--push.lua
--------------------------------------------
local cjson = require "cjson"
local testable = {{name="divad",sex="man"},
{name="xiaobao",sex="girl"}}
local strtable = cjson.encode(testable)
ngx.location.capture("/memc", {
args={cmd="set",key="foo",val=strtable}
})
local strt = ngx.location.capture("/memc", {
args={cmd="get",key="foo"}
})
--local test = cjson.decode(strt.body)
ngx.say(strtable)
ngx.say(strt.body)
下面是浏览器输出:
[{"name":"divad","sex":"man"},{"name":"xiaobao","sex":"girl"}]
%5b%7b%22name%22%3a%22divad%22,%22sex%22%3a%22man%22%7d,%7b%22name
%22%3a%22xiaobao%22,%22sex%22%3a%22girl%22%7d%5d
On 5月26日, 下午9时55分, agentzh <agen...@gmail.com> wrote:
> 2012/5/26 jiangfei <liujiangfei.di...@gmail.com>:
>
> > 大家晚上好,我叫江飞,刚刚接触openresty,遇到点问题,请教一下
> > 我把lua table通过cjson序列化为json串然后,用HttpMemcModule往memcached中保存,
> > 取出来后发现,把[, { ,",:等都给转义了,没办法反序列化成lua table了,请教下有没有解决办法?
>
> 请给出你使用的 Lua 代码和 nginx 配置文件 :) 尽量是最小化的例子哈。
>
> Regards,
> -agentzh