2014-07-11 1 views
0

데이터베이스로부터 오는 특정 객체에 대한 액세스를 캡슐화하는 컨트롤러 인터페이스를 구축했습니다. DB 부하를 줄이기 위해 이러한 개체를 목록에 캐시하고 싶습니다. 의미 : 어떤 사람이 특정 시간 프레임 내에서 컨트롤러로부터 동일한 객체를 요청할 때 캐시/목록에서 가져와야합니다.연령별로 autoCleanup을 사용하여 콜렉션

이 목록은 요청되지 않은 곳에서 자동으로 개체를 삭제해야합니다 (30 초라고 가정 해 보겠습니다).

이러한 목록을 실행할 준비가 되었습니까?

건배, 기독교

+1

같은 캐시 기능을 가진 O/R 매퍼를 사용하는 것입니다 필요하지 않습니다. 해당 키의 만료 시간을 사용하여 키와 컬렉션을 값으로 설정할 수 있습니다. 모든 요청에 ​​대해 만료 시간을 재설정 할 수 있습니다. 만료 시간이있는 목록에서 더 많은 작업을 원하면 redis를 고려하십시오. – shazin

+0

고마워, ehChache는 정말 좋은 힌트 였어. 전에는 들어 본 적이 없었지만 통합하기가 쉬웠습니다. –

답변

0

은 그냥 circular buffer을 구현할 수 있습니다. 쉽게 구현할 수 있으며 연령 처리는

다른 옵션은 내가 당신으로 Ehcache, Memcached가 같은 캐싱 메커니즘과이를 달성 할 수 있다고 생각 Hibernate

+0

이것은 웹 응용 프로그램입니다.로드가 높으면 순환 버퍼 인덱스가 채워질 수 있습니다 (int에는 최대 한도가 있음). 이 옵션은 확장 할 수 없습니다. – shazin

+0

int 최대 값은 2 147 483 647입니다. 개체의 최대 수는 30 초입니다. 따라서 순환 버퍼가 가득 차고 모든 객체가 정크이면 문제가 발생합니다. 이것은 서버가 30 초 내에 2 147 483 647 개의 다른 요청을 얻었음을 의미합니다. 데이터베이스에는 고유 항목 2 147 483 647이 있어야합니다. 좋은. – dit