有一个关于如何使用 connect-memcached 的简单示例。
var express = require('express')
, session = require('express-session')
, cookieParser = require('cookie-parser')
, http = require('http')
, app = express()
, MemcachedStore = require('connect-memcached')(session);
app.use(cookieParser());
app.use(session({
secret : 'CatOnKeyboard'
, key : 'test'
, proxy : 'true'
, store : new MemcachedStore({
hosts: ['127.0.0.1:11211']
})
}));
app.get('/', function(req, res){
if(req.session.views) {
++req.session.views;
} else {
req.session.views = 1;
}
res.send('Viewed <strong>' + req.session.views + '</strong> times.');
});
这样我们就可以使用Memcached来存储我们的session了。 但在这个示例中,我怀疑 Memcached 如何在其中存储会话(没有代码操作 Memcached)。 当我们调用
req.session.views = 1;
时,views
的值现在存储到 Memcached 中吗?或者它根本没有存储?有人能为我解释一下吗?或者在这里教我如何使用 Memcached 设置和获取会话。
不,这会在您对服务器进行的每次调用的会话中保存。但是为了检查会话是否相同并显示正确的值,服务器需要在memcached工作时检查会话。 获取代码检查您的会话中是否有视图,并在每次调用时增加 1。