googleappengine-Memcache-Java版Python';s client.add?

googleappengine-Memcache-Java版Python';s client.add?,java,google-app-engine,memcached,Java,Google App Engine,Memcached,memcache的python接口有一个add方法: 添加(键,值,时间=0,最小压缩长度=0,命名空间=None) 设置键的值,当且仅当该项不在memcache中时 如果添加返回值,则返回值为True;如果出现错误,则返回值为False 因此,如果项目不存在,您可以使用它添加项目,并通过返回值查看它以前是否存在 与此等效的java memcache api不会让您知道是否存在以前的值: 放置(键、值、过期、, MemcacheService.SetPolicy.ADD_ONLY_IF_NOT_

memcache的python接口有一个
add
方法:

添加(键,值,时间=0,最小压缩长度=0,命名空间=None)

设置键的值,当且仅当该项不在memcache中时

如果添加返回值,则返回值为True;如果出现错误,则返回值为False

因此,如果项目不存在,您可以使用它添加项目,并通过返回值查看它以前是否存在

与此等效的java memcache api不会让您知道是否存在以前的值:

放置(键、值、过期、, MemcacheService.SetPolicy.ADD_ONLY_IF_NOT_PRESENT)

MemcacheService.SetPolicy.ADD_ONLY_如果不存在: 如果该键没有值,则添加该值;如果该键存在,则不执行任何操作

有没有办法知道java api中是否存在以前的值?我不能事先检查
contains
方法,因为在调用
contains
和调用
put
之间,另一个JVM实例可以修改memcache。

例如:

put()方法不会返回键以前的已知值。它总是返回null

因此,如果您想在调用
put()
之前知道它是否存在,我只需要事先调用
contains()

如果您担心其他呼叫者在您的两个呼叫之间插入内容,您可能过于依赖Memcache的可靠性。Memcache并不是用来存储重要数据的可靠场所,就像用于更昂贵操作(例如,数据存储读取、URLFetch)的缓存一样

请记住,Memcache可以在任何时间、任何原因清空,您的应用程序需要考虑这一事实