通常我会这样做:
if not memcache.get('mykey'):
memcache.set('mykey', item)
但是,今天我看到了memcache.add()
,它似乎仅在项目尚不存在时才添加项目。那么这是否等同于我上面的代码?我可以用 替换上面的代码memcache.add()
吗?
此外,更重要的是,我正在使用 AppStats,并且在 RPC 调用跟踪下,我可以查看我的请求是否调用memcache.set()
orget()
或datastore.put()
or get()
。使用上面的 2 行代码时,我看不到任何memcache.set()
,这是预期的。但是,即使返回 false(意味着未插入新项目) ,仅使用memcache.add()
(不检查项目是否已存在)总是调用。为什么会这样?memcache.set()
memcache.add()