当我处理会话和页面缓存时,我遇到了问题。 我使用memcache存储我的会话信息, 我想使用文件来缓存网站页面。 问题是他们都使用CACHE_BACKEND, 如果我这样做:CACHE_BACKEND ='memcached://127.0.0.1:11211 /', 那我怎么能让我的页面缓存与文件一起工作?
答案 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相当稳定)或者只是等待几周才能发布。