我的App Engine(Java)应用程序计划用于需要频繁更新许多项目的数据结构。数据量不计划超过1000条记录(每个客户端),但客户端数量不受限制,所以我不愿意每秒进行1000次读取和1000次写入只是为了更新一些计数器。
当然我正在考虑使用Memcache。理想情况下,数据应始终存在于内存中,以便我可以经常读取和更新数据。如果缓存已满或正在关闭VM(我最关心的问题),它应该只写入数据存储。我是否可以实现某种write-back strategy,其中缓存仅在需要时写入存储?
特别是我的两个问题是:
答案 0 :(得分:2)
简短回答:不。
更长的答案:Memcache不提供保证。
有用的答案:看https://developers.google.com/appengine/articles/scaling/memcache#transient。如果丢失数据是一个选项,你可以依赖memcache(但有时候某些东西可能会丢失)。
不要担心VM会被关闭:Memcache在实例VM之外运行,并在所有应用程序实例VM之间共享。