Web 应用程序会话缓存

发布于 2024-08-03 05:37:58 字数 130 浏览 3 评论 0原文

我想在基于 struts 的 Web 应用程序中缓存用户会话的数据。最好的方法是什么。目前,我们将数据库中的某些信息存储在用户会话中的 java 对象中。到目前为止,工作正常,但人们现在关心内存使用情况等。 关于如何最好地解决这个问题的任何想法。

I want to cache data for a user session in a web application built on struts.What is the best way to do it .Currently we store certain information from the DB in java objects in the user's session .Works fine till now but people are now concerned about memory usage etc.
Any thought on how best to get around this problem.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谁对谁错谁最难过 2024-08-10 05:37:58

到目前为止工作正常,但现在人们都这样了
关心内存使用等。

“关心”相对来说毫无意义——他们有什么具体的理由吗?显示会话对象占用了多少内存的统计信息?同样:您是否有想要在用户会话中缓存数据的具体原因?您是否对应用程序进行了分析并确定为每个请求从数据库获取此数据会显着降低您的应用程序速度?

别猜。测量。

Works fine till now but people are now
concerned about memory usage etc.

Being "concerned" is relatively meaningless - do they have any concrete reason for it? Statistics that show how much memory session objects are taking up? Along the same line: do you have concrete reasons for wanting to cache the data in the user session? Have you profiled the app and determined that fetching this data from the DB for each request is slowing down your app significantly?

Don't guess. Measure.

梦罢 2024-08-10 05:37:58

由于这个原因,将整个对象存储在用户会话中通常是不好的做法。您可能应该只将密钥存储在会话中,并在再次需要它们时重新查询数据库。这是一种权衡,但对于大多数用例来说通常是可以接受的。在请求之间查询数据库的键通常是可以接受的,而不是在会话中存储对象。

如果您必须在会话中使用它们,请考虑使用 LRUMap(在 Apache Collections 中)之类的东西。

It's usually bad practice to store whole objects in the user session for this reason. You should probably store just the keys in the session and re-query the database when you need them again. This is trade-off, but usually acceptable for most use-cases. Querying the database on keys is usually acceptable to do between requests, rather than storing objects in session.

If you must have them in session, consider using something like an LRUMap (in Apache Collections).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文