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) 是全局缓存吗? 的相关文章

  • 模拟框架对我有什么作用?

    我听说有些我无法交谈的人是 jmock 的忠实粉丝 我已经做了以测试为中心的开发多年 所以我浏览了网站并查看了一些文档 但仍然不知道它有什么好处 我对春天也有同样的问题 如果您已经了解它是什么 他们的文档会很好地解释它 所以我并不认为 jm
  • 为移动设备扩展 libgdx UI?

    眼下desktop应用程序的版本很好 按钮缩放得很好 但是当我部署到android它们很小 几乎无法使用 DesktopLauncher public class DesktopLauncher public static void mai
  • java中如何围绕另一个移动对象旋转一个对象?

    我对 Java 很陌生 想要编写一个简单的太阳系统 其中月球绕地球旋转 地球绕太阳旋转 一切正常 除了月亮不想正确移动 由于地球偏离月球的初始位置 月球的自转半径会根据该距离而增大 同样 当地球接近月球惯性位置时 自转半径会减小 如果初始位
  • 使用 ScheduledExecutorService 安排每月任务

    我想在该月的某一天的特定时间安排一项任务 每次运行之间的间隔可以设置在 1 到 12 个月之间 在java中 可以使用ScheduledExecutorService以固定的时间间隔调度任务 既然一个月的天数不固定 那么如何实现呢 提前致谢
  • 在 Jenkins 内运行构建时,我收到“java/lang/OutOfMemoryError”

    2020 02 25 10 11 24 986 0000 id 79 信息hudson model AsyncPeriodicWork lambda doRun 0 开始maven repo cleanup 2020 02 25 10 11
  • lombok - 多个镜头中的 @Builder 模式

    I use Builder of 龙目岛项目 https github com rzwitserloot lombok 所以考虑我有这个例子 Builder public class Client private Getter Setter
  • 如何在Spring Security SAML示例中配置IDP元数据和SP元数据?

    我想处理 Spring Security SAML 为此 我开始探索Spring安全SAML http docs spring io spring security saml docs 1 0 x reference html chapte
  • 带有 spring-kafka 的 Kafka 死信队列 (DLQ)

    最好的实施方式是什么死信队列 DLQ Spring Boot 2 0 应用程序中的概念 使用 spring kafka 2 1 x 来处理无法处理的所有消息 KafkaListener某些bean发送到某些预定义的Kafka DLQ主题的方
  • java.sql.SQLException: - ORA-01000: 超出最大打开游标数

    我收到 ORA 01000 SQL 异常 所以我有一些与之相关的疑问 最大打开游标是否与 JDBC 连接数完全相关 或者它们也与我们为单个连接创建的语句和结果集对象相关吗 我们正在使用连接池 有没有办法配置数据库中语句 结果集对象的数量 如
  • 按位非运算符

    为什么要按位运算 0 打印 1 在二进制中 不是0应该是1 为什么 你实际上很接近 在二进制中 不是0应该是1 是的 当我们谈论一位时 这是绝对正确的 然而 一个int其值为0的实际上是32位全零 将所有 32 个 0 反转为 32 个 1
  • 使用 javax.mail 和 CentOS 的邮件服务器

    我有一个 Java 程序 安装在一台旧的 Ubuntu 机器上 并使用 javax mail 发送邮件 然而 那台机器宕机了 我现在在新的 CentOS 机器上运行相同的 Java 应用程序 但是 当我尝试使用 mail smtp host
  • 从 Java 调用 Python 代码时出现问题(不使用 jython)

    我发现这是从 java 运行 使用 exec 方法 python 脚本的方法之一 我在 python 文件中有一个简单的打印语句 但是 我的程序在运行时什么也没做 它既不打印Python文件中编写的语句 也不抛出异常 程序什么都不做就终止了
  • Java反序列化中避免重复对象

    我有两个列表 list1 和 list2 其中包含对某些对象的引用 其中某些列表条目可能指向同一对象 然后 由于各种原因 我将这些列表序列化为两个单独的文件 最后 当我反序列化列表时 我想确保我不会重新创建超出需要的对象 换句话说 List
  • 如何迭代SparseArray?

    有没有办法迭代 Java SparseArray 适用于 Android 我用了sparsearray通过索引轻松获取值 我找不到 看来我找到了解决方案 我没有正确注意到keyAt index 功能 所以我会这样做 for int i 0
  • 在java中设置Process对象的安全性

    有人可以告诉我如何限制通过进程对象访问系统属性吗 如果我通过进程对象运行以下代码 我可以抛出安全异常吗 System getProperty user home 请告诉我如何为流程对象配置证券 在ProcessBuilder类文档中 环境方
  • 使用 Java 进行 AES 加密并使用 Javascript 进行解密

    我正在制作一个需要基于 Java 的 AES 加密和基于 JavaScript 的解密的应用程序 我使用以下代码作为基本形式进行加密 public class AESencrp private static final String ALG
  • 如何实现再次播放功能?

    我希望在游戏结束时得到提示 如果我还想再玩一次的话 并使用 Y N 输入 退出游戏或重复游戏 我该如何以最有效的方式解决这个问题 编辑 描述资源路径位置类型 类型 Main Main java ScaredyCat src se grupp
  • 何时以及为何使用缓冲输入和输出流? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我读到这些是为了减少磁盘 网络调用开销而使用的 这在写操作的情况下似乎很好 但是进行缓冲读取有什么好处呢 如果您按字节读取文件 则每次都会进
  • 仅在java中使用数组计算50的阶乘

    我是java的初学者 我有一个作业要编写一个完整的程序 使用数组计算 50 的阶乘 我无法使用像 biginteger 这样的任何方法 我只能使用数组 因为我的教授希望我们理解背后的逻辑 我猜 然而 他并没有真正教我们数组的细节 所以我在这
  • 用于将字符串与通配符模式进行匹配的递归函数

    所以我一整天都在试图解决这个作业 只是无法完成 以下函数接受 2 个字符串 第二个 不是第一个 可能包含 的 星号 An 是字符串的替换 空 1个字符或更多 它可以出现 仅在s2中 一次 两次 更多或根本不出现 它不能与另一个相邻 ab c

随机推荐

  • 向条形图添加水平线

    我正在尝试使用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 的不同