java - GAE 上 Memcache 的写回策略

标签 java google-app-engine caching google-cloud-datastore

我的 App Engine (Java) 应用程序计划处理需要频繁更新许多项目的数据结构。数据量计划不超过 1000 条记录(每个客户端),但客户端数量是无限的,因此我不愿意每秒进行 1000 次读取和 1000 次写入,只是为了更新一些计数器。

我自然会考虑使用 Memcache。理想情况下,数据应该始终位于内存中,以便我可以经常读取和更新它。仅当缓存已满或虚拟机正在关闭时(我最关心的问题),才应将其写入数据存储。我可以实现某种 write-back strategy缓存仅在需要时才写入存储?

特别是我的两个问题是:

  1. 我如何知道某个项目何时从缓存中删除?
  2. 我如何知道虚拟机何时关闭,以便保留缓存的内容?

最佳答案

简短回答:否。

更长的答案:Memcache 不提供任何保证。

有用的答案:看看https://developers.google.com/appengine/articles/scaling/memcache#transient 。如果可以选择丢失数据,您可以依靠 memcache(但有时可能会丢失一些数据)。

不过,不必担心 VM 被关闭:Memcache 在实例 VM 外部运行,并在所有应用实例 VM 之间共享。

关于java - GAE 上 Memcache 的写回策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17199610/

相关文章:

java - Commons HttpClient - PutMethod 套接字错误 - Tomcat 7

google-app-engine - 在 Google App Engine 中使用 jQuery.Ajax 获取 404 错误

java - Java 中的语法检查

java - Java并行流每次完成

python - 使用 Google App Engine 在 HTML 和 CSS 上呈现模板

php - 如何提高 MySQL 数据库的性能

apache - Varnish -仅在后端关闭时才从缓存发送

css - Chrome 不显示 webfont,在缓存样式表中声明字体时回落到 Times New Roman

java - 使用 HSQLDB JDBC 驱动程序在 CSV 上执行 SQL

google-app-engine - 我们如何远程使用 Google Datastore Objectify?