2012-11-02 3 views
0

성능을 위해 메모리에 내 객체를 캐시하고 싶지만 너무 오래 액세스하지 않으면 리사이클해야합니다.내 캐시에 적합한 데이터 유형을 찾으십시오.

매 30 분 함수는 Windows 작업 시스템의 파일 속성과 같이 모든 캐시 객체를 검사합니다. 각 객체에는 마지막으로 수정 된 시간 스탬프 (또는 플래그)와 마지막으로 액세스 한 시간 스탬프가 있습니다. 마지막으로 수정 한 시간이 0보다 큰 경우 datebase에서 업데이트하기위한 sql을 만들고 마지막으로 액세스 한 시간이 30 분보다 큰 경우 수정 된 시간을 0으로 재설정 한 다음 캐시 시스템에서 해당 시간을 삭제합니다.

그들을 구현하는 가장 좋은 방법은 무엇입니까? 이미 파이썬에서 비슷한 시스템이 있으므로 바퀴를 다시 만들 필요가 없습니다.

ps. Memcached가 없습니다. 객체에 직접 액세스해야하며 직렬화 및 직렬화 해제가 필요하지 않습니다.

답변

1

이러한 속성을 가진 클래스를 속성으로 만들거나 사전 만 사용하십시오. 그것은 맛의 문제, 둘 다 작동합니다. 클래스가 있으면 "is_old"또는 "is_modified"와 같은 메서드를 만들 수도 있습니다.

모든 데이터를 유지하는 구조는 동일합니다. 기본적으로 거대한 사전이지만 "purge_old"등과 같은 메서드를 사용하여 클래스에 래핑하려고 할 수 있습니다.

관련 문제