2011-02-03 5 views

답변

18

죄송합니다. Memcached는 명백하게 임의의 위치에 키를 배포하는 해시 알고리즘을 사용하므로 키가 흩어져 있습니다. 당신은 그들을 찾기 위해 모든 것을 조사해야 할 것입니다.

memcached는 의도적으로 어떤 이유로 든 임의의 키를 삭제할 수 있습니다. 당신이 물건을 넣고 있다면, 당신은 그것이 다시 돌아 오는 것에 의존 할 수 없다는 것을 알아야합니다. 이것은 데이터베이스의 히트를 줄이기위한 캐시 인 원래의 사용 사례에서는 절대적으로 문제가되지 않습니다. 그러나 더 복잡한 것을하고 싶다면 심각한 문제가 될 수 있습니다.

이러한 제한 사항이 문제가 있으면 대신 Redis를 사용하는 것이 좋습니다. 그것은 memcached와 매우 흡사합니다. 단, 데이터를 유지하고 복잡한 데이터 구조를 저장할 수 있습니다. 그래서 당신의 경우에는 Redis에 해시를 저장 한 다음 나중에 전체 해시를 꺼낼 수 있습니다.

3

네임 스페이스를 사용하여 필요한 것을 수행 할 수 있습니다. 다음은 동일한 기능을 수행하는 PHP 라이브러리입니다. 여러 응용 프로그램에서 동일한 Memcached를 사용할 수 있습니다. @btilly 기본적으로이 작업을 수행하지 않는 memcached를 말하는 올바른지 동안

https://github.com/vijayabose/n_memcached

4

, 당신은 당신이 모든 항목을 가져올 수 있도록 여러분의 접두사를 공유 키의 인덱스를 유지하여 (아주 효율적으로) 에뮬레이션 할 수 있습니다 특정 접두사와 일치하는

분명히 이것은 임의의 데이터가 아닌 미리 선택한 특정 키에 대해서만 작동하지만 분명히 그 제한으로 살 수 있다면 매우 효과적입니다. memcache 개발자 중 한 명이 a good article on this subject입니다.

3

빠른 명령은 우리가 검색 위에

for i in {1..40}; do (echo "stats cachedump $i 0"; sleep 1; echo "quit";) | telnet localhost 11211 | grep 'APREFIX*\|ANOTHERPREFIX*'; done 
에서) 논의에 따라
  • ; | 'ANOTHERPREFIX * APREFIX * \'40
  • -1에서 석판은 grep 부분을 놓치지 마세요
  • 관련 문제