在django中缓存常用的查询集

时间:2017-10-03 07:07:25

标签: django caching

我有一个模型在我的应用程序中被大量使用(并且其中的数据几乎从未改变,除非开发人员想要改变某些东西)。 我想缓存此查询集,看看它对我的观看速度有何不同,但无法真正理解它。

我正在使用redis,我设置了这样的缓存:

m = MyModel.objects.all()
cache.set('m', m, timeout=None)

然后我就这样得到它:

c = cache.get('m')
for x in range(1,200):
    o = c.get(pk=x)

...当然会导致200个DB查询。

如何将所有内容存储在缓存中,以便每次查找都从缓存中获取数据?我应该在缓存中设置每个条目,例如cache.set(primary_key, object)吗?或者我应该将其转换为字典或其他什么?

1 个答案:

答案 0 :(得分:0)

可以挑选查询集,然后将其存储在缓存中,然后从缓存本身获取所有内容