问题描述
我在memcache和GAE DB操作方面遇到了一些麻烦。
如果我在数据库操作之后更新memcache rigth,x.put(),例如,我的memcache函数经常返回旧值。如果我使用睡眠(),缓存更正常,但这是不正确的,在我看来
sleep(0.2)
pre>
data = Picture.all()。order(' - created')。fetch(300)
memcache.set('pictures_all',data)
我需要做什么才能获得正确的内存缓存?
解答:
需要使用父母查询,所有图片实体必须有相同的父母,那么你会得到强有力的结果data = picture.all()。order(' - created')。ancestor(main_key())。fetch(300)
memcache.set('pictures_all',data)
$ c $如果您有数据,只需更新memcache中的一个条目,则无需从数据库中检索全部数据。 内存缓存。就像
data.put()
memcache.set(key,data)
I have some troubles with memcache and GAE DB operations.if i update memcache rigth after DB operations, x.put(), for example, my memcache function often return old value. If i use sleep(), cache more often correct, but this is not right, in my opinion
sleep(0.2) data = Picture.all().order('-created').fetch(300) memcache.set('pictures_all', data)
What i need to do, to get correct memcache?
ANSWER:Need to use parent with query, all Picture entities must have same parent, then you get strong consistant results
data = Picture.all().order('-created').ancestor(main_key()).fetch(300) memcache.set('pictures_all', data)
解决方案If you have the data, just update one entry in the memcache, no need to retrieve all from memcache. Something like
data.put() memcache.set(key, data)
这篇关于GAE,数据库更新前的memcache的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!