会话存储有什么用?

What is the use of a session store?

我正在使用 koa 和 passport,因此我正在使用 koa-generic-session 中间件来处理我的会话。

现在与 expressjs session 中间件不同,文档中没有像这样的大免责声明:默认的服务器端会话存储 MemoryStore 是有意的不是为生产环境设计的。

假设 koa-generic-session 的 MemoryStore 已准备好用于生产,为什么我要为来来去去的会话使用诸如 mysql 或 mongodb 之类的重型会话存储天长?使用 MemoryStore 不能提供哪些额外功能?

在内存中,会话存储非常适合开发,但它有一些用于生产的问题。

  • 重新启动服务器会导致所有会话失效,这对您的应用程序的用户来说不是一件好事
  • 在内存存储中处理生产级负载的效率不高,因为可能同时进行大量会话,因此更高效的存储比写入磁盘、经常使用的缓存更好。数据库将满足所有这些品质