我如何配置我的CACHE_BACKEND

时间:2011-02-11 04:04:01

标签: python django

当我处理会话和页面缓存时,我遇到了问题。 我使用memcache存储我的会话信息, 我想使用文件来缓存网站页面。 问题是他们都使用CACHE_BACKEND, 如果我这样做:CACHE_BACKEND ='memcached://127.0.0.1:11211 /', 那我怎么能让我的页面缓存与文件一起工作?

2 个答案:

答案 0 :(得分:1)

您有三种可能性:

0)使用Beaker http://beaker.groovie.org/index.html

1)不要使用memcache进行会话存储,而是通过将“django.contrib.sessions”添加到INSTALLED_APPS来使用db会话引擎(不要忘记使用syncdb来创建会话表)。如果您对性能有疑虑,可以使用内存中的表引擎。

2)实现您自己的使用单独缓存的会话引擎:

SESSION_ENGINE = 'yourapp.session_engine' SESSION_CACHE_BACKEND = '分布式缓存://127.0.0.1:11211 /'

然后在session_engine.py中(未经测试):

从django.contrib.sessions.backend.cache导入SessionStore作为BaseSessionStore 来自django.core.cache导入get_cache 来自django.conf导入设置

类SessionStore(BaseSessionStore):   def init (self,session_key = None):         super(SessionStore,self)。 init (session_key)         self._cache = get_cache(settings.SESSION_CACHE_BACKEND)

答案 1 :(得分:0)

django 1.3即将发布,并且将支持多个缓存后端(查看开发文档:http://docs.djangoproject.com/en/dev//topics/cache/)。

你可以使用最新的django svn checkout(这并不罕见,django svn相当稳定)或者只是等待几周才能发布。