从 Nginx 获取 memcached 保存的数据
Get memcached saved data from Nginx
我对 memcached 和 nginx 都不熟悉。我试图在 memcached 中保存一个值并尝试将其取回。但问题是,如果我与内存缓存服务器断开连接,则保存的值将被删除。
function databaseFunctions.save(key, value)
memc, err = connectDatabase();
ngx.say("Before Save value: " .. value)
local success, err = memc:set(key, value)
local value, flags, err = memc:get(key)
ngx.say("Getting saved value: " .. value);
memc:set_keepalive(5000, 1)
memc:close();
memc, err = connectDatabase();
local value, flags, err = memc:get(key)
ngx.say("Getting saved value and err again: ")
ngx.say(value);
ngx.say(err)
return success, err;
end
connectDatabase = function()
local memcached = require "resty.memcached"
local memc, err = memcached:new()
memc:set_timeout(1000)
local ok, err = memc:connect(databaseHost, databasePort)
local ok, err = memc:flush_all()
return memc, nil;
end
输出:
Before Save value: eyJhZGRyZXNzIjp7ImZv
Getting saved value: eyJhZGRyZXNzIjp7ImZv
Getting saved value and err again:
nil
nil
这是 memcached 中的预期行为吗?如果是这样,我如何从一个 Nginx 请求保存数据并从另一个 Nginx 请求取回该数据?
在您的连接函数中,您调用 flush_all()
告诉内存缓存清除所有内容。如果要保留连接之间的数据,请删除此调用。
我对 memcached 和 nginx 都不熟悉。我试图在 memcached 中保存一个值并尝试将其取回。但问题是,如果我与内存缓存服务器断开连接,则保存的值将被删除。
function databaseFunctions.save(key, value)
memc, err = connectDatabase();
ngx.say("Before Save value: " .. value)
local success, err = memc:set(key, value)
local value, flags, err = memc:get(key)
ngx.say("Getting saved value: " .. value);
memc:set_keepalive(5000, 1)
memc:close();
memc, err = connectDatabase();
local value, flags, err = memc:get(key)
ngx.say("Getting saved value and err again: ")
ngx.say(value);
ngx.say(err)
return success, err;
end
connectDatabase = function()
local memcached = require "resty.memcached"
local memc, err = memcached:new()
memc:set_timeout(1000)
local ok, err = memc:connect(databaseHost, databasePort)
local ok, err = memc:flush_all()
return memc, nil;
end
输出:
Before Save value: eyJhZGRyZXNzIjp7ImZv
Getting saved value: eyJhZGRyZXNzIjp7ImZv
Getting saved value and err again:
nil
nil
这是 memcached 中的预期行为吗?如果是这样,我如何从一个 Nginx 请求保存数据并从另一个 Nginx 请求取回该数据?
在您的连接函数中,您调用 flush_all()
告诉内存缓存清除所有内容。如果要保留连接之间的数据,请删除此调用。