这是关于 GAE / Java Memcache 的一个非常普遍的问题:
我有一个名为 Network 的对象,它存储在 Memcache 中,我还有另一个名为 User 的对象,它引用了 Network 。
Network network=Memcache.get(networkKey);
user._network=network; //user references an object that came from Memcache...
现在我有一堆代码可以改变 user._network(不接触 Memcache):
user._network= // 对对象进行一些更改,而不涉及 Memcache
好的,问题来了,看看代码,最后一行是否更新了内存缓存中的网络对象?我有需要访问更新的网络对象的 servlet,问题是我是否将 Memcache 对象视为常规对象是错误的。
也许正确的方法是这样?
Network network=Memcache.get(networkKey);
network.doUpdate();
Memcache.put(key,network);