express应用程序中实际存储的会话数据在哪里?是否存在某种内置缓存,节点可以从中访问会话数据?会话数据是否存储在内存中?开发人员是否经常将会话数据保存到redis?
jm2pwxwz1#
express中没有内置会话数据。您可以将外部模块(如express session)引入到项目中,以便创建在express应用程序中使用的用户会话对象。特别是对于express session,它有一个内置的“not means for production”内存存储(因此会话数据保存在内存中,不会在服务器重启后继续存在)。但是,存储是一个可插入的项目,这里列出了几十个会话存储选项。它们在各种不同的数据库中提供存储(用于持久会话存储)。查看所有不同会话存储选项的列表。您可以看到mongodb、microsoftsqlserver、db2、mysql等常见数据库的会话存储驱动程序,以及redis等各种基于内存的存储,甚至还有一些基于云的存储。所以,你有很多选择。开发人员是否经常将会话数据保存到redis?如果您的特定需求与redis最擅长的匹配,那么redis是一个流行的选项。如果您不一定需要永久会话存储,那么您将在某些unix版本上运行服务器,并且您有一个群集应用程序,需要从多个服务器进程访问会话数据(因此不能使用进程内内存存储)。不需要长期持久性的小型部署可以使用一个生产就绪的基于内存的存储。windows部署会选择一个比redis更受windows支持的数据库。如果您已经在使用其中一个受支持的数据库,许多人会选择该数据库进行会话,只是为了简化部署、管理、支持,也许还有许可(为什么要添加其他类型的数据库)。
1条答案
按热度按时间jm2pwxwz1#
express中没有内置会话数据。您可以将外部模块(如express session)引入到项目中,以便创建在express应用程序中使用的用户会话对象。
特别是对于express session,它有一个内置的“not means for production”内存存储(因此会话数据保存在内存中,不会在服务器重启后继续存在)。但是,存储是一个可插入的项目,这里列出了几十个会话存储选项。它们在各种不同的数据库中提供存储(用于持久会话存储)。查看所有不同会话存储选项的列表。您可以看到mongodb、microsoftsqlserver、db2、mysql等常见数据库的会话存储驱动程序,以及redis等各种基于内存的存储,甚至还有一些基于云的存储。
所以,你有很多选择。
开发人员是否经常将会话数据保存到redis?
如果您的特定需求与redis最擅长的匹配,那么redis是一个流行的选项。如果您不一定需要永久会话存储,那么您将在某些unix版本上运行服务器,并且您有一个群集应用程序,需要从多个服务器进程访问会话数据(因此不能使用进程内内存存储)。
不需要长期持久性的小型部署可以使用一个生产就绪的基于内存的存储。windows部署会选择一个比redis更受windows支持的数据库。如果您已经在使用其中一个受支持的数据库,许多人会选择该数据库进行会话,只是为了简化部署、管理、支持,也许还有许可(为什么要添加其他类型的数据库)。