我正在设计一个网络应用程序,它应该保留包含大量信息的用户个人资料, 显然它是从数据库读取数据。
目前,我的 session 中有用户名,每次我需要用户的信息时都应该读取 session ,然后创建一个配置文件类的对象(再次从数据库中读取数据)来检索用户的信息,这是最佳实践吗有这样的问题吗?
最佳答案
这是性能和内存消耗之间的典型权衡。如果您想要一个快速的应用程序,请将整个用户配置文件保留在 HTTP session 中,但请确保服务器中有足够的内存。
如果您想保持较低的资源消耗,请仅在 session 中存储用户 ID,并在每次需要时从数据库加载它。这也使得集群变得更简单,因为需要迁移的数据更少。
合理的妥协是使用后一种方法并进行一些缓存。这样,热门用户(当前正在使用系统)将保留在内存中,而空闲用户或不经常访问新页面的用户将从缓存中清除(假设缓存小于 HTTP session 数)。 p>
关于java - 在哪里保存用户的 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12759161/