这是关于GAE/Java的内存缓存一个非常普遍的问题:参照内存缓存对象和更新他们
我有被存储在内存缓存称为网络的对象,并且我有另一个对象调用用户具有基准到网络。
Network network=Memcache.get(networkKey);
user._network=network; //user references an object that came from Memcache...
我现在有一串代码改变user._network(不接触内存缓存):
user._network = //做一些改变的对象,而不触及内存缓存
确定所以这里的问题, 直接看代码,最后一行是否更新了memcache中的网络对象?我有需要访问更新的网络对象的servlet,问题是如果我错在将Memcache对象视为常规对象。
也许正确的方法是?
Network network=Memcache.get(networkKey);
network.doUpdate();
Memcache.put(key,network);
最后一行不会执行任何操作,除非您的Memcache类以某种方式知道网络对象的密钥是什么。 Memcache需要密钥,价值。 –
对不起,我解决了这个问题,这不仅仅是一个错字。问题仍然存在...... –
明白了,请参阅下面的答案。 –