usually often , we cache express session like :
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
app.use(session({
store: new RedisStore(options),
secret: 'keyboard cat'
}));
now , after we use oiredis , i don't know how to cache express session in redis cluster
and i want to use session like under normal conditions :
req.session.user = 'hello world';
var user = req.session.user;
can u give an example ?
There should not be any difference. Please refer to the documentation on connect-redis: https://github.com/tj/connect-redis#custom-redis-clients
`
var session = require('express-session');
var Redis = require('ioredis')(session);
var redis = new Redis.Cluster([{
host:'192.168.0.12',
port:123
}]);`
that is it ?
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var Redis = require('ioredis');
var redis = new Redis.Cluster([{
host:'192.168.0.12',
port:123
}]);
app.use(session({
store: new RedisStore({ client: redis }),
secret: 'keyboard cat'
}));
I didn't try but the code above should do the trick.
Do I need for the redis client to be connected before calling app.use(session..?
@tnguyen14 No, you don't
On logout, getting this error, Unhandled rejection ReplyError: CROSSSLOT Keys in request don't hash to the same slot. Everything else works. Tried doing Hashtag by making the prefix to be {sess}.
Most helpful comment
I didn't try but the code above should do the trick.