내 응용 프로그램에 memcached 레이어를 추가하기 시작했습니다. 여태까지는 그런대로 잘됐다.캐시를 무효화하기위한 PHP Memcached 키 및 버전 번호 증가 - 어떻게?
그러나 나는 데이터를 관련성있게 유지하기 위해 누군가 파일을 사이트에 업로드 할 때 대량의 대량 배치를 무효화/삭제해야 할 필요가 있음을 깨달았습니다.
나는이 문제를 해결하는 가장 일반적인 방법은 각 키에 버전 번호를 설정하는 것인데, 사용자가 업로드 할 때 키를 삭제하는 것보다는 (많은 순열이있을 수 있기 때문에) 다음에 데이터에 액세스 할 때 캐시 실패를 유도하여 버전 번호를 증가시킵니다.
이 코드를 얻기 위해 어디서부터 시작해야할지 모르겠다. 나는 어쨌든 내 머리를 완벽하게 이해하고있다.
내 코드는 현재 다음과 같다 : -
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$key = md5("songsearch_$textSearch.$rangeSearch");
위 차례로 JSON 많은 양의를 검색하는 GET 요청에서 검색되는 키 VAR의 두 변수. (제품 카탈로그를 생각해 보라).
이 변수는 이러한 변수에 따라 동적으로 결합되는 쿼리 자체를 결정합니다. 궁극적으로이 모든 것들이 동일한 스크립트에서 생성 된 수백 개의 키를 가질 수있을지라도 모든 개별 쿼리에 고유 한 키를 제공합니다.
위의 내용이 확실 할 경우, 제 질문에 대한 대답을 돕기 위해 어떤 점을 명확히 해달라고 부탁드립니다. 내가 JSON을 인코딩하기 직전
$memcache->set($key, $output, MEMCACHE_COMPRESSED, time() + 24*60*60*365);
- :
분명히 나중에 캐시에게 내가 이것을 사용하고 결과를 설정합니다.
내 질문은 정말입니다 ... 어떻게 증분 버전 관리를 추가하여 사용자가 파일을 업로드하면이 스크립트에서 생성 된 전체 키를 무효화 할 수 있습니까?
나를 올바른 길로 인도하는 사람에게 거대한 감사드립니다.
그 바보 : 당신은 단순히 당신의 스크립트를 수정 것, 그래서 지금
:
는 액세스를 단순화하기 위해, 당신이 (검증되지 않은) 새로운 Memcache의 핸들러 클래스에이 포장 추천 memcache는 와일드 카드에서 삭제하도록 허용하지 않습니다. 일부 상수 키 접두사와 일치하는 모든 캐시 항목을 플러시하기가 쉽습니다. 'cache_key_related_to_group_of_values *' –더 동의하지 못했습니다 ... 더 강력하고 쉽게 작업 할 수 있습니다. :-( – gordyr