gpt4 book ai didi

java - 谷歌应用引擎 : Memcache or Static variable?

转载 作者:太空狗 更新时间:2023-10-29 22:33:46 27 4
gpt4 key购买 nike

嗯,我想我在这里有一个非常基本的疑问:

我正在 GAE (Java) 上开发一个应用程序并对返回大量数据的数据存储执行查询实体,所以我需要缓存它。我使用的是 memcache,它运行良好,但如果我将实体列表保存在静态变量中,整个请求的速度是使用 memcache 的两倍。我认为那是因为我没有一直反序列化实体。

在 memcache 上使用静态变量的缺点是什么?我不知道云中是否可能有我的应用程序的多个实例,以及我的静态变量的多个实例?

我尝试缓存的实体列表是上周最好的(得分更高的)帖子。我使用该列表并随机选择 5 个帖子并在几页中显示它们。

感谢您的帮助!

最佳答案

App Engine 通过创建应用程序的新实例随着访问它的用户数量的增加而扩展。正如 drudru 所说,不同的用户可能由不同的实例提供服务。一般来说,memcache 是存储你想要全局一致的东西的最快地方。但是,您的情况可能还有改进的余地。

你提到你有一个帖子列表,你随机选择 5 个显示给用户。如果 2 个不同的用户看到一组不同的 5 个,这有关系吗?如果您无论如何都选择随机的,也许这并不重要。然后,您可以将完整的帖子列表存储在内存缓存中,并从内存缓存中随机抽取 5 个并将它们存储在静态变量中。

其次,你到底在做什么内存缓存,你是如何把它拉出来的?您是否在 memcache 中存储了一大堆完整的帖子,将它们全部获取,然后选择 5 个?也许您可以只下载帖子列表,选择 5 个,然后只得到您需要的 5 个?如果您认为是反序列化使您变慢,那么这可能会有所帮助。你拿到帖子后有没有做任何处理?如果是这样,是否可以缓存该处理的结果?

关于java - 谷歌应用引擎 : Memcache or Static variable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1095123/

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