1 (선택됨) 또는 0 (선택되지 않음) 인 16 개의 필터 옵션이있는 양식을 사용하는 검색 응용 프로그램에서 작업하고 있습니다. 결과는 JSON은 AJAX를 통해 GET 요청을 사용하여 검색됩니다.많은 매개 변수를 기반으로 캐시하는 방법
쿼리 스트링은 다음과 같다 :
FILTER_1 = 0 & filter_2 = 1 ... 생략 ... & filter_16 = 1 & 페이지 = 20
각각의 SearchResult가 갖는 적어도 2 페이지를 한 사용자가 탐색 할 수 있습니다.
내 질문은 : 어떻게 입력 된 매개 변수를 기반으로 검색 결과를 캐시 할 수 있습니까? 내 첫 번째 아이디어는 요청 매개 변수를 md5하고 해시를 파일 이름으로 사용하여 캐시 파일을 작성하는 것이 었습니다.
새 요청이 들어올 때마다 캐시 파일을 검색하고 캐시 파일이 있으면 데이터베이스를 쿼리하고 행을 json 결과로 변환하는 대신 해당 파일의 데이터를 사용합니다.
그러나 이것은 많은 검색 옵션 때문에 좋지 않은 것처럼 보입니다. 꽤 많은 캐시 파일 (16 * 16 ???)이있을 것이고 응용 프로그램이 소수의 사용자에 의해서만 사용되기 때문에 모든 가능한 조합이 캐시 될 것입니다. 각 결과에는 X 페이지가 포함되어 있으므로 각 페이지는 자체 캐시 파일 (16 * 16 * X)이됩니다.
이와 같은 응용 프로그램에 적합한 캐싱 전략은 무엇입니까? 캐시를 구현할 수 있습니까?