我正在使用事务将多个实体写入数据存储区。我也想将这些实体保留在 MemCache 中。如何确保 MemCache 中的实体副本实际上等于 Datastore 中的副本?
例如我可以这样做:
tx.begin()
datastore.put(entity)
if (memcache.putIfUntoched(key, entity))
tx.commit()
但是,如果事务失败,实体可能会在 MemCache 中结束,而不是在 Datastore 中。另一方面,如果我这样做:
tx.begin()
datastore.put(entity)
tx.commit()
memcache.putIfUntoched(key, entity))
那么 Datastore 事务可能会成功,但 MemCache 更新可能会失败。如何确保一致性?