2014-01-20 2 views
0

django-redis-cache를 백엔드로 사용하고 있습니다. 뷰에 대한Django 캐시는 get 매개 변수에 다른 키를 저장합니다.

@cache_page(60*60*24) 

장식 :와

.

이제 내가 직면하는 문제는 모든 요청이 다른 키로 저장되는 것입니다. get 매개 변수에 대해 동일한 페이지를 표시해야합니다. 캐시를 제공하고 키를 만드는 동안 캐시가 강제로 매개 변수를 가져 오도록 강제 할 수있는 방법이 있습니까?

답변

0

요청의 쿼리 문자열이 무엇이든간에 동일한 캐시 키를 계산하는 "방법"은 물론 있지만 약간의 작업이 필요합니다. 하위 수준 캐시 API를 기반으로 자신의 cache_page 구현을 다시 작성해야합니다. 여기에 문서화되어 있습니다 https://docs.djangoproject.com/en/1.6/topics/cache/#the-low-level-cache-api). CacheMiddleware (cache_page이 빌드 된)의 소스 코드를 읽을 수도 있습니다.

이제는 페이지 캐시에 대한 캐시 키를 생성 할 때 쿼리 문자열을 무시할 필요가 없다고 말해야합니다.

+0

나는 GET 매개 변수를 기반으로하는 비밀 로그인과 cron 유형의 파이썬 스크립트에서 캐시를 워밍업하는 것과 같은 것을 실제로 사용하고 있습니다. (페이지로드에는 각각 약 25 분이 소요됩니다.) – crazydiv