0
私はmemcachedとnginxの両方を初めて使いました。私はmemcachedに値を保存しようとし、それを元に戻そうとしました。しかし、問題は、私がmemcacheサーバーから切断した場合、保存された値が削除されることです。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の中に予想される動作ですか?もしそうなら、1つのNginxリクエストからデータを保存し、そのデータを別のNginxリクエストから取得する方法はありますか?
まあ、あなたは 'flush_all'を呼び出していますので、すべてを失いたくない場合は、初心者のためにそれをしないでください –
ありがとう、これは私の問題を解決:) – maamaa