Google App Engine 的 Memcache (Java) 是全局缓存吗?

2024-01-04

我是 Google App Engine 的新手,最近几天我一直在使用 GAE 的 Memcache 来存储数据来构建一个应用程序。根据我的初步发现,GAE 的 Memcache 似乎不是全局的?

让我进一步解释一下。我知道对 GAE 的不同请求可能由不同的实例提供服务(事实上,这种情况似乎经常发生)。正是出于这个原因,我使用 Memcache 来存储一些共享数据,而不是静态 Map。我认为(也许是错误的)这就是使用分布式缓存的目的,以便任何节点都可以访问数据。

另一个明确的可能性是我做错了什么。我尝试过 JCache 和低级 Memcache API(我正在编写 Java,而不是 Python)。这就是我正在执行的检索缓存的操作:

MemcacheService cache = MemcacheServiceFactory.getMemcacheService();

部署后,这是我检查的内容(通过我的应用程序日志):

  1. 初始请求由特定节点提供服务,数据存储到上面检索到的缓存中。
  2. 新的几个请求检索相同的缓存并且数据就在那里。
  3. 当生成一个新节点来服务请求时(从日志中我知道这种情况何时发生,因为 GAE 记录了“此请求导致为您的应用程序启动了一个新进程..”)这一事实,缓存被检索并且为空!!

现在我还知道,无法保证数据会在 Memcache 中保存多久,但从我的发现来看,当 diff 实例尝试访问缓存时,数据似乎就消失了。这似乎违背了分布式全局缓存的整个概念不是吗?

希望有人能准确地澄清这应该如何表现。如果 Memcache 不应该是全局的并且每个服务器实例都有自己的副本,那么为什么还要使用 Memcache?我可以简单地使用静态 HashMap(我最初是这样做的,直到我意识到由于不同的实例服务于我的请求,它不会是全局的)。

Help?


Yes, Memcache http://code.google.com/appengine/docs/java/memcache/overview.html在应用程序的所有实例之间共享。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google App Engine 的 Memcache (Java) 是全局缓存吗? 的相关文章

随机推荐

  • 向条形图添加水平线

    我正在尝试使用R plotly s bar输入plot 来生成一个带有水平布局的框的图 并在其背景中添加一条水平线 而不是在它们的顶部 另外 我希望这条线在每个方向上对称地延伸一个盒子单元 这就是我正在做的 plot df lt data
  • android 在模拟器或设备中执行?

    有什么方法可以知道我的应用程序是在模拟器上还是在设备上运行 我使用的代码片段适用于 Intel 和 ARM 模拟器 if Build MODEL contains google sdk Build MODEL contains Emulat
  • `npmaudit` 不断返回“您配置的注册表 (https://registry.npmjs.org/) 不支持审核请求。”。我怎样才能让它再次工作?

    这是我得到的错误 npm ERR code ENOAUDIT npm ERR audit Your configured registry https registry npmjs org does not support audit re
  • 带有 @init 块的 ANTLR4 词法分析器规则

    我在 ANTLR v3 语法文件中定义了这个词法分析器规则 它的数学文本用双引号引起来 我需要将其转换为 ANTLR v4 ANTLR 编译器抛出错误 语法错误 在匹配词法分析器规则时不匹配输入 期望冒号 在 init 行中 词法分析器规则
  • 使用 C# 无法正确更改应用程序图标

    我将应用程序的图标更改为新图标 方法是转到 Project MyProject Properties Icon and Maniferest 然后加载新图标 现在 在我的调试文件夹中 我的 exe 文件的图标出现了新图标 这没关系 但是当我
  • Google App Engine 删除了默认 GCS 存储桶。有办法恢复吗?

    我正在从应用程序的默认存储桶中删除一些文件 并且不小心还使用 gsutil rm 命令删除了存储桶本身 有没有办法恢复 重新创建 恢复它 我想继续使用免费配额而不启用计费 到目前为止我试图做的是 但我不确定它是否正确 我首先启用计费只是为了
  • HTML 表格忽略元素样式宽度

    HTML 表格忽略元素样式宽度 我有一个 HTML 表格 其中某些单元格具有很长的文本内容 我想使用 jQuery 为这些单元格指定宽度 以像素为单位 但渲染的表格只是忽略给定的宽度 有什么方法可以强制表格遵守这个宽度吗 Thanks JS
  • 测量 OpenCV FPS

    我正在寻找一种正确的方法来测量 openCV FPS 我找到了几种方法来做到这一点 但它们都不适合我 我测试过的第一个使用time t 开始和 time t 结束 我认为一旦它返回一个转储的函数作为 fps x 时间图 我真的无法想象 fp
  • 将行号添加到现有 HTML

    我正在尝试向现有的 html 添加行号 行高不等 许多类型的字体大小和图像 每条线看起来像 div div
  • 如何使用适用于 Node.js 的 AWS 开发工具包在 s3 上创建文件夹或密钥?

    我正在使用适用于 Node js 的 AWS 开发工具包在 s3 上创建文件夹或密钥 我在谷歌上搜索 但一无所获 有谁知道如何使用适用于 Node js 的 AWS SDK 在我的存储桶下创建文件夹 如何检查您的存储桶中是否已存在该文件夹
  • 实体组件系统和共享公共基础类型的多个组件

    我正在尝试为我的游戏引擎实现一个简单的 ECS 我知道我的实现并不是严格意义上的 ECS 但我正在重构我的代码以使其更加基于组件 到目前为止 我有以下课程 Entity 它是组件的容器 并且由于我希望我的实体具有相同类型的多个组件 因此它将
  • 具有易失性或锁定的属性

    我有一个带有支持字段的属性 我想使其线程安全 获取和设置 get和set方法除了设置和返回之外没有任何逻辑 我认为有两种方法可以将逻辑封装在属性 self 中 易失性和锁定 我对两者的理解是正确的还是有错误 以下是我的例子 public c
  • Android 上的 MP3 解码

    我们正在为 Android 手机实现一个程序 用于播放来自互联网的音频流 我们所做的大约如下 下载自定义加密格式 解密以获取常规 MP3 数据块 将 MP3 数据解码为内存缓冲区中的原始 PCM 数据 将原始 PCM 数据传送到 Audio
  • 如何根据外部向量过滤表的行?

    1 我在 R 中读取了一个大表 其中包含超过 10000 行和 10 列 2 表的第 3 列包含医院名称 其中一些是重复的 甚至更多 3 我有一个医院名称的向量 例如其中10个有待进一步研究 4 您介意教我如何提取步骤 1 中具有步骤 3
  • Ansible:在角色目录中的目录中调用角色的剧本

    我想塑造我的 ansible 角色和剧本的目录结构 目前我有一个像这样的目录结构 group vars all group one group vars yml group vault yml host vars server1 yml p
  • 如何创建 GS1 DataBar Expanded 条形码?

    我需要创建一个GS1 DataBar Expanded RSS Expanded 条形码使用Code128字体或简单的二进制条形码字体 我知道如何使用应用程序标识符或创建校验和 但我不知道如何对数据进行编码GS1 DataBar Expan
  • Eigen 中的自定义标量类型

    我目前正在尝试设置一个自定义标量类型以与 Eigen3 库一起使用 atm 它是一个简单的包装器double 我已关注https eigen tuxfamily org dox TopicCustomizing CustomScalar h
  • 如何关闭 Cocoa 应用程序中的键盘声音?

    我的方法有问题OpenGL可可应用程序 每次keyUp KeyDown事件被触发 系统声音正在播放 我如何为我的应用程序禁用此逻辑 我有一种不好的预感 由于某种奇怪的原因 我的应用程序可能会将按键视为错误并播放系统警报声音 请帮忙 添加到您
  • 如何让 Python 使用 Mac OS TrustStore 中的 CA 证书?

    我需要在公司内部网上使用自定义根证书并将它们加载到 Mac OS TrustStore KeyChain 中确实解决了所有浏览器和 GUI 应用程序的问题 看来它甚至可以与以下版本一起使用curl随 Mac OS X 一起提供 但它不适用于
  • Google App Engine 的 Memcache (Java) 是全局缓存吗?

    我是 Google App Engine 的新手 最近几天我一直在使用 GAE 的 Memcache 来存储数据来构建一个应用程序 根据我的初步发现 GAE 的 Memcache 似乎不是全局的 让我进一步解释一下 我知道对 GAE 的不同