2016-03-03 30 views
1

我已經建立了memcached的我的機器上,並把它添加到像這樣一個觀點:Django的cache.clear()不工作

@cache_page(3600) 
def course_list(request, market_code, destination=None, course_type=None):  
    template = 'course_list.html' 
    ... 
    .. 

而且我已經設置了訪問

時清除高速緩存中的視圖
from django.core.cache import cache 
class ClearCacheView(TemplateView): 
    """ 
    This view will clear the cache and display a message to the user saying so 
    """ 
    template_name = 'ebsadmin/cache_clear_success.html' 
    def get_context_data(self, **kwargs): 
     cache.clear() 
     return super(ClearCacheView, self).get_context_data(**kwargs) 

當我訪問ClearCacheView時,會顯示成功模板,但不會刪除緩存中的項目。

setings.py

CACHES = { 
    'default': { 
     'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 
     'LOCATION': '127.0.0.1:11211', 
     'TIMEOUT':36000 

    }, 
} 

我在模板中的時間戳,所以我可以告訴正在使用或者不緩存:

<!-- {% now "jS F Y H:i:s" %} --> 

cache.clear應該清除一切,據我所知。那麼,爲什麼它不在這裏做什麼?

+0

您正在使用哪個django版本? – Forge

+0

我正在使用版本1.9 –

+0

也許這是一個瀏覽器緩存的事情。你是否嘗試過隱身或直接訪問memcache? – Forge

回答

1

您正在使用MemcachedDjango cache文檔中指定的清除緩存的正確語法。

您可能需要驗證memcached守護進程正在運行,如果它沒有運行django緩存命令會導致無輸出。嘗試使用memcached重新運行它以查看端口是否已被佔用。

+0

memcached正在運行 - 我可以遠程登錄並運行統計命令。 (它需要運行以存儲需要失效的緩存,不是嗎?) –