2016-01-11 78 views
1

我在python中有一个方法,它对发送的输入做一些处理,并在处理完成后返回一个值。我可以使用python永久使用数据库缓存来缓存数据Django

此方法花费大量时间来给出结果。所以,我现在正在做的是用于使用django数据库缓存来缓存返回值的类似输入。它运作良好。

但我需要将数据存储在缓存数据库中以供永久使用。

在Django网站上提到“Django缓存后端都不应该用于永久存储”(https://docs.djangoproject.com/en/1.9/topics/cache/)。

我可以将数据存储在缓存数据库以及常规数据库中。但这将是性能问题。

因此,我应该遵循什么方法来解决性能问题。

回答

1

只要您没有为缓存条目设置超时值,就不应该在没有明确这样做的情况下清除它们。

要小心,在默认情况下,缓存有300秒计算的逾,你需要缓存的TIMEOUT参数的设置文件,例如明确设置为None

CACHES = { 
    'default': { 
     'BACKEND': 'django.core.cache.backends.db', 
     'TIMEOUT': None, 
    } 
} 

然而,似乎不好的做法,我使用数据库高速缓存来存储要永久保存的数据(例如,清除整个高速缓存只需调用一个方法 - cache.clear())。为什么不创建专门用于存储结果的模型?

+0

如果我创建专用于存储结果的模型,检索的速度是否与从缓存中检索速度几乎相同? – Vinay

+0

这将是相同的,这两种情况都是从数据库中读取的,事实上它是执行读取的缓存框架并没有使其更快。如果您使用的是不同的缓存后端(例如,memcached),那么它会对性能产生影响。 – aumo

+0

非常感谢您的回答。 – Vinay