2009-07-08 5 views
4

목록/튜플/맵에 저장된 값으로 간단한 Python 클래스를 사용하여 Django의 캐시를 locmem과 함께 사용하면 완벽하게 작동하지만 memcached에서는 작동하지 않습니다.Django의 캐시가 locmem과 함께 작동하지만 memcached와 함께 실패하는 이유는 무엇입니까?

충분한 메모리가 할당되어 있고 시간 초과가 많음에도 불구하고 키의 일부만이 memcached로 이동하며 관련 값이없는 것으로 나타납니다.

값을 검색하면 값이 반환되지 않고 캐시에서 제거됩니다.

"hi"값을 강제로 설정하면 캐시에 표시되는 값을 검색 할 수 있지만 대부분의 키가없는 이유를 설명하지 못합니다.

질문 :

  1. 왜 특정 키를 memcached를에 끝내는 다른 사람이 아닌 모든 값이 "안녕하세요"로 설정하는 경우에도?
  2. 더 많은 로깅 또는 오류보고를 활성화하는 방법이 있습니까? (모든 것이 자동으로 실패하는 것 같습니다)
  3. 파이썬 클래스가 locemem으로 올바르게 직렬화되지만 Memcached에서 종료되지 않는 이유는 무엇입니까?

답변

3

는 무슨 일이 일어나고 있는지 알아 memcached -vv 2>/tmp/mc_debug_log (난 당신이 Unixy 시스템의 일종에있어 있으리라 믿고있어)과 짧은 시간 동안 실행을 실행 - 당신은 로그 파일에 대한 자세한 정보를 찾을 수 있습니다 너 끝났을 때.

사용중인 memcached의 파이썬 인터페이스에 따라 문자열 만 값 (cmemcache의 StringClient 모듈 에서처럼)으로 지원되거나 모든 피클 할 수있는 객체가 (피클 링 및 언 피클 링의 오버 헤드로) 물론, 같은 cmemcache에있는 더 일반적인 클라이언트 모듈에서와 같이 GAE의 memcachepython-memcached; 문자열을 값으로 만 사용할 수 있다면 아마도 이전 유형의 인터페이스를 사용하고있을 것입니다.

관련 문제