gpt4 book ai didi

java - 存储在应用程序 session 中的集合变为空

转载 作者:行者123 更新时间:2023-11-29 09:10:39 25 4
gpt4 key购买 nike

我构建了一个服务器-客户端 android 应用程序,用户在其中注册到服务器,每个用户配置文件都保存在数据库和我在应用程序 session 中保存的收集池中。

我将所有现有用户保存在 session 中的原因是这些用户经常更新有关其他用户的信息。从 Google 应用引擎数据存储中读取数据通常会花费我很多钱。

这在第一个月工作正常,但今天我的 session 中有 1000 个配置文件,情况开始变得糟糕。突然间,配置文件集合变为空,我不得不“重启”服务器以使配置文件再次加载到 session 中。

我想我在 session 中保存所有配置文件的设计是错误的。我对吗?或其他原因可能导致空集合?

有什么设计模式可以用来做正确的事吗?

最佳答案

我不太了解 session 的内部结构以及它们在 GAE 中的处理方式,但我的第一个猜测是 session 变得太大,并且无法在请求之间正确序列化。

我的建议是使用 MemCache 来存储用户列表。一个典型的模式是将您需要的表存储在数据库中(这将包括您提到的每个用户的连接池)。然后,在首次创建 session 时或在您实际需要时,将数据从 DB 加载到 MemCache。

缓存后,您可以直接使用它而无需额外的数据库查询。如果做得好,这是非常健壮的,也不应该让你遇到性能问题。请记住,MemCache 可能会被系统随机清除,因此如果 MemCache 尚未初始化或重置,您需要确保从数据库加载它。

关于java - 存储在应用程序 session 中的集合变为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12629767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com