用于缓存动态用户内容的设计模式(在django中)

时间:2011-12-04 20:27:33

标签: django design-patterns database-design optimization memcached

在我的网站上,我将为一些活动提供积分,类似于stackoverflow。我想根据许多因素计算值,因此每个用户的每次计算都需要10个SQL查询。

我在考虑缓存它:

  • 在memcache中,
  • 在数据库的用户行中(这样无论我需要从哪里获取用户,我都可以轻松地显示这些点)

在数据库中存储似乎很容易,但另一方面它是多余的信息,我决定问,因为可能有更容易和更漂亮的解决方案,我错过了。

1 个答案:

答案 0 :(得分:1)

我强烈建议您使用此应用程序将计算值存储在模型中:https://github.com/initcrash/django-denorm

Memcache比数据库更快...但是如果您已经必须从数据库中检索记录,那么将您正在检索的行中缓存的计算值(作为“非规范化”字段)更快,加上它是持久的。