2010-04-09 66 views
1

Python接口到内存缓存具有add方法:Google App Engine - Memcache - Python的client.add的Java版本?

加(键,值,时间= 0,min_compress_len = 0,命名空间=无)

设置键的值,当且仅当该项目不在memcache中。 ...

如果添加,则返回值为True,错误时为False。

因此,如果它不存在,您可以添加一个项目,并查看它是否以前存在的返回值。

的Java的内存缓存API相当于该不会让你知道,如果有一个以前的值或不:

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

MemcacheService.SetPolicy.ADD_ONLY_IF_NOT_PRESENT: 添加值,如果用钥匙没有价值,什么也不做,如果键存在

有没有办法知道,如果存在一个以前的值或者不与Java API的?我不能事先检查contains方法,因为在调用contains和调用put之间,另一个JVM实例可能会修改内存缓存。

回答

0

docs说:

的put()方法不适用于一键返回上一已知值。它总是返回null。

因此,如果您想在致电put()之前知道它是否存在,我会事先致电。

如果您担心其他调用者在两次调用之间插入某些内容,您可能会过度依赖Memcache的可靠性。 Memcache并不意味着成为存储重要数据的可靠地方,就像缓存更昂贵的操作(例如数据存储读取,urlfetches)一样。

请记住,无论出于何种原因,Memcache都可以随时清空,并且您的应用需要考虑到这一事实。