从Nginx获取memcached保存的数据

从Nginx获取memcached保存的数据,nginx,lua,memcached,Nginx,Lua,Memcached,我对memcached和nginx都是新手。我试图在memcached中保存一个值,并试图将其检索回来。但问题是,如果我断开与memcache服务器的连接,那么保存的值就会被删除 function databaseFunctions.save(key, value) memc, err = connectDatabase(); ngx.say("Before Save value: " .. value) local success, err = memc:set(k

我对memcached和nginx都是新手。我试图在memcached中保存一个值,并试图将其检索回来。但问题是,如果我断开与memcache服务器的连接,那么保存的值就会被删除

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\u all()
,该函数告诉memcache清除所有内容。如果要保留连接之间的数据,请删除此调用

在connect函数中,您正在调用
flush\u all()
,它告诉memcache清除所有内容。如果要保留连接之间的数据,请删除此调用

好吧,你正在调用
flush\u all
,所以如果你不想失去一切,就先别那么做汉克,这就解决了我的问题:)好吧,你正在调用
flush\u all
,所以如果你不想失去一切,就先别那么做汉克,这就解决了我的问题:)