Python 如何在不影响数据库的情况下重新排序memcache
我正在用python在google app engine上编写一个web应用程序,使用jinja2作为模板系统,该应用程序基本上允许用户编写帖子/评论,并对其他用户的帖子进行排名。排名系统基于上/下票数和评论数。我试图使用memcache来存储这个计算值,并相应地对帖子进行排名 我只想偶尔将值存储在数据库中,以避免写入成本过高。我计划每10次投票/评论设置一个计数器并将其存储在数据库中。我是这样想的:Python 如何在不影响数据库的情况下重新排序memcache,python,google-app-engine,memcached,google-cloud-datastore,Python,Google App Engine,Memcached,Google Cloud Datastore,我正在用python在google app engine上编写一个web应用程序,使用jinja2作为模板系统,该应用程序基本上允许用户编写帖子/评论,并对其他用户的帖子进行排名。排名系统基于上/下票数和评论数。我试图使用memcache来存储这个计算值,并相应地对帖子进行排名 我只想偶尔将值存储在数据库中,以避免写入成本过高。我计划每10次投票/评论设置一个计数器并将其存储在数据库中。我是这样想的: # I update the counter every time that I add a
# 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中有什么方法可以做到这一点吗?我查阅了文件,但没有找到明确的方法
我在想,如果一篇文章获得3票或4票,我只需发表一次。但你是对的,我想这有点太冒险了。我在想,如果一篇文章得到3票或4票,我只需要投一次。但你是对的,我想这有点太冒险了。