Python Memcached不';我不能按时更新

Python Memcached不';我不能按时更新,python,google-app-engine,memcached,Python,Google App Engine,Memcached,当浏览器重定向到“/”时,最后添加的项目不在列表中(仅在重新加载后添加)。只有当我在开发服务器上时才会发生这种情况(在GAE上它可以正常工作),我想知道它是否可以在GAE上发生,这段代码有什么问题 如有任何建议,将不胜感激 UPD:thx,我做的键是一样的,但问题仍然存在你根本没有在这里点击memcache。您在post和get方法中使用了不同的键格式:在get中,您使用“posts\u user”,而在post中,您使用“user:posts”,因此永远找不到键,您将进入数据库查询。当然,由于

当浏览器重定向到“/”时,最后添加的项目不在列表中(仅在重新加载后添加)。只有当我在开发服务器上时才会发生这种情况(在GAE上它可以正常工作),我想知道它是否可以在GAE上发生,这段代码有什么问题

如有任何建议,将不胜感激


UPD:thx,我做的键是一样的,但问题仍然存在

你根本没有在这里点击memcache。您在
post
get
方法中使用了不同的键格式:在
get
中,您使用“posts\u user”,而在
post
中,您使用“user:posts”,因此永远找不到键,您将进入数据库查询。当然,由于最终的一致性,查询不是最新的,这可能是您首先使用memcache的全部原因


修复您的memcache密钥,这应该会起作用。

您在这里根本没有碰到memcache。您在
post
get
方法中使用了不同的键格式:在
get
中,您使用“posts\u user”,而在
post
中,您使用“user:posts”,因此永远找不到键,您将进入数据库查询。当然,由于最终的一致性,查询不是最新的,这可能是您首先使用memcache的全部原因


修复您的memcache密钥,这应该会起作用。

您在这里根本没有碰到memcache。您在
post
get
方法中使用了不同的键格式:在
get
中,您使用“posts\u user”,而在
post
中,您使用“user:posts”,因此永远找不到键,您将进入数据库查询。当然,由于最终的一致性,查询不是最新的,这可能是您首先使用memcache的全部原因


修复您的memcache密钥,这应该会起作用。

您在这里根本没有碰到memcache。您在
post
get
方法中使用了不同的键格式:在
get
中,您使用“posts\u user”,而在
post
中,您使用“user:posts”,因此永远找不到键,您将进入数据库查询。当然,由于最终的一致性,查询不是最新的,这可能是您首先使用memcache的全部原因


修复您的memcache密钥,这应该会起作用。

当您更换时,该项可能不在memcache中。在这种情况下,为什么要使用“替换”?有没有不使用memcache.set的理由?在get函数中,仍然有一个地方的键是posts_u%s:这与其他地方不同。

当您进行替换时,该项可能不在memcache中。在这种情况下,为什么要使用“替换”?有没有不使用memcache.set的理由?在get函数中,仍然有一个地方的键是posts_u%s:这与其他地方不同。

当您进行替换时,该项可能不在memcache中。在这种情况下,为什么要使用“替换”?有没有不使用memcache.set的理由?在get函数中,仍然有一个地方的键是posts_u%s:这与其他地方不同。

当您进行替换时,该项可能不在memcache中。在这种情况下,为什么要使用“替换”?有没有不使用memcache.set的理由?在get函数中,还有一个地方的键是posts\u%s:这与其他地方不同。

我修复了这些键,但它仍然需要重新加载页面才能看到新的post。有没有可能memcache在第一次重定向后更新太长而无法看到新帖子?我已经修复了密钥,但它仍然需要重新加载页面才能看到新帖子。有没有可能memcache在第一次重定向后更新太长而无法看到新帖子?我已经修复了密钥,但它仍然需要重新加载页面才能看到新帖子。有没有可能memcache在第一次重定向后更新太长而无法看到新帖子?我已经修复了密钥,但它仍然需要重新加载页面才能看到新帖子。是否有可能memcache更新太长,在第一次重定向后无法看到新帖子?
class MainHandler(BaseHandler.Handler):
    def get(self):
       user = users.get_current_user() or "unknown"
       posts = memcache.get('posts_%s' % user.user_id())
       if not posts:
         q = db.Query(P.Post)
         q.filter('author =', users.get_current_user()).order("-date")
         posts=q.fetch(5)
         memcache.set(key='posts_%s:'%user.user_id(),value=posts)
       #q=P.Post.all().filter('user =',users.get_current_user())
       self.render('index.html', user=user, posts=posts)

    def post(self):
     user = users.get_current_user() or "unknown"
     author = users.get_current_user()
     title = self.request.get('title')
     content = self.request.get('content')
     p = P.Post(author=author, title=title, content=content)
     p.put()
     res = memcache.get('posts_%s'%users.get_current_user().user_id())

     if res:
        res+=p
        if len(res)>5:
         res=res[1:]
     else:
        res=[p]

     memcache.replace("posts_%s"%user.user_id(),value=res)
     self.redirect('/')