【发布时间】:2012-11-05 14:53:21
【问题描述】:
通常我会这样做:
if not memcache.get('mykey'):
memcache.set('mykey', item)
但是,今天我看到了memcache.add(),它似乎只添加了一个不存在的项目。那么这是否等同于我上面的代码?我可以用memcache.add()替换上面的代码吗?
另外,更重要的是,我正在使用 AppStats,在 RPC 调用跟踪下,我可以查看我的请求是否调用了 memcache.set() 或 get() 或 datastore.put() 或 get()。使用上面的 2 行代码时,我看不到任何 memcache.set() 的内容,这是预期的。但是,仅使用 memcache.add()(不检查项目是否已存在)总是调用 memcache.set(),即使 memcache.add() 返回 false(表示未插入新项目)。为什么会这样?
【问题讨论】:
-
你应该看看source code :)
-
@PaoloMoretti 感谢您的链接..我到底在寻找什么..
-
这个问题(或类似问题)之前已经在stackoverflow上问过,我也想指导你-stackoverflow.com/questions/2678339/…-serverfault.com/questions/291681/add-vs-set-in-memcached
-
谢谢。我的主要问题是问题的第二部分。使用 add() 仍然显示对 set() 的 RPC 调用是没有意义的。这就是我最困惑的..
标签: python google-app-engine memcached