会redis删除我的旧express.js会议?

我正在使用redis作为我的会话存储为node.js +快速应用程序…它会自动删除旧会话过期后吗?

…或者我需要做一些清理在服务器端? (所以数据库不会变得太大)

var RedisStore = require('connect-redis')(express) app.use(express.session({ store: new RedisStore({ host: cfg.redis.host, db: cfg.redis.db }), secret: 'foobar' })); 

是的, connect-redis会使Redis在会话过期时清除会话。

如果我没有记错的话,默认的会话超时是24小时,对我来说在相当长的时间内保持闲置的内存,但是你可以给它一个ttl参数来configuration(秒)你想在Redis之前保持会话的时间到期他们。

如果您想确保Redis能够为您清理所有问题,只需将超时设置为30秒,并在超时过期后查看Redis;

 app.use(express.session({ store: new RedisStore({ host: cfg.redis.host, db: cfg.redis.db, ttl: 30 }), secret: 'foobar' })); 

这里提到了 ttl选项, 这里有一些额外的细节说明它如何与其他选项交互。

它按预期工作。 如果我做一个浏览器会话(当用户代理closures时会过期),它会在redis中保存24小时(我没有在connect-redis中设置ttl选项)。

如果我设置一个cookie在2周内过期,它会在redis中生存14天。

你可以检查这些命令:

 start redis-cli > keys * > ttl <key>