2010-07-28 4 views
0

우리는 Django (Python) 프로덕션에서 cmemcache 및 python-memcache를 API로 사용하여 캐싱 목적으로 memcached 서버 클러스터를 사용하고 있습니다. 문제는 높은 동시성 하에서 발생합니다. 중복 된 키 - 값 쌍이 생기기 시작했습니다. 즉, 단일 키에 대해 다중 값을 갖는 것입니다. 비슷한 상황을 겪은 사람이 있습니까?memcached에 의해 반환 된 중복 키 - 값 쌍

memcached 서버 자체가 키 - 값 쌍의 특이성을 유지하기 위해 각각 통신하지 않기 때문에이 작업은 클라이언트 라이브러리에 남아 있으므로 cmemcache 및 python-memcache가 어떻게 작동하는지 자세히 이해하려고합니다.

답변

0

더 큰 문제 : 중복 데이터가 있거나 쿼리 결과가 둘 이상입니까?

전 문제가 발생하면 손쉽게 해결할 수있는 불쾌한 동시성 문제가 발생합니다.

그러나 후자가 문제가되는 경우에는 memcache의 값을 저장하는 각 호스트에 고유 한 식별자를 부여하고 모든 키 앞에 추가하지 않는 것이 좋을까요?

1

클라이언트는 키를 기반으로 가치가 존재하는 memcache 서버를 알아 내야합니다. 두 개의 서로 다른 클라이언트 (또는 동일한 클라이언트의 두 가지 구성)를 사용하는 경우 서로 다른 알고리즘을 사용하여 키를 서버에 매핑함으로써 동일한 키에 대한 값을 두 개의 서로 다른 서버에 전송할 수 있습니다.

pylibmc 또는 python-libmemcached으로 전환 할 수 있습니다. 작년에 파이썬 memcache 클라이언트를 리뷰했을 때, 언급 한 클라이언트는 모두 은퇴했거나 부러 졌거나 둘 모두였습니다.

관련 문제