我正在使用 jinja2 作为模板系统在 python 中的谷歌应用引擎上编写一个 Web 应用程序,该应用程序基本上允许用户编写帖子/评论并对其他用户的帖子进行排名。排名系统基于赞成/反对票的数量和评论的数量。我正在尝试使用 memcache 存储此计算值并相应地对帖子进行排名。
我只想偶尔将值存储在数据库中,以免写入成本昂贵。我计划每 10 票/评论有一个计数器并将其存储在数据库中。我在想这样的事情:
# I update the counter every time that I add a vote or comment
counter = 0
def posts_cache(update = False):
global counter
key = 'main'
posts = memcache.get(key)
if posts is None or update:
logging.error("DB QUERY")
posts = db.GqlQuery("SELECT * "
"FROM Post "
"ORDER BY rank DESC "
"LIMIT 100",
key)
posts = list(posts)
memcache.set(key, posts)
if counter>=10:
counter = 0
#put the memcache posts in the database
return posts
但我不确定如何获取我在 memcache 中的帖子并将它们存储在数据库中。有没有办法在python中做到这一点?我浏览了文档,但没有找到明确的方法。