我的 App Engine (Java) 应用程序计划处理需要频繁更新许多项目的数据结构。数据量不打算超过 1000 条记录(每个客户端),但客户端的数量是无限的,所以我不愿意为了更新一些计数器而每秒进行 1000 次读取和 1000 次写入。
自然地,我正在考虑使用 Memcache。理想情况下,数据应该一直在内存中,这样我就可以经常阅读和更新它。仅当缓存已满或 VM 正在关闭(我最关心的问题)时,才应将其写入数据存储。我可以实施某种回写策略,仅在需要时将缓存写入存储吗?
特别是我的两个问题是:
- 我如何知道某个项目何时从缓存中删除?
- 我如何知道 VM 何时关闭,以便我可以保留缓存的内容?