LRU, TTL

·2023년 4월 23일
0

개발 지식

목록 보기
58/96
post-thumbnail

LRU (Least Recently Used)

캐시 업데이트에 사용되는 알고리즘으로, 가장 오래전에 사용된 항목의 제거를 돕는 알고리즘이다. 가장 많이 사용되는 구성 방식은 Double Linked List 이며, Head 에 가까운 데이터일 수록 최근에 사용한 데이터 이며 Tail 에 가까울수록 오랫동안 사용하지 않은 데이터로 간주한다. 새로운 데이터를 삽입하는 경우, Head 에 삽입이 되며, 만약 일정 용량을 초과하는 경우에는 Tail의 데이터를 삭제하면서, Head에 데이터를 삽입한다. 기존 Linked List와 동일하게 시간복잡도 O(1) 이다.

TTL (Time To Live)

LRU와 마찬가지로 캐시 업데이트에 사용되는 알고리즘으로, TTL은 캐시에 저장된 데이터의 유효 기간을 의미한다. 데이터를 캐시에 저장할 때 TTL 값을 설정하면, 해당 데이터가 캐시에서 유지되는 기간을 설정할 수 있다. 일반적으로 초 단위로 설정되며, 주기적으로 TTL 값을 확인하며 만료된 TTL 값이 존재하는 경우 해당 캐시를 삭제한다.

브라우저 캐시 사례

LRU 알고리즘은 웹 브라우저의 캐시에서 가장 오래전에 사용된 항목을 제거하여 새로운 항목을 삽입하는 방식으로 동작한다. 예를 들어, 사용자가 오래전에 방문한 웹 페이지는 자동으로 캐시에서 삭제된다. 이를 통해 캐시 메모리의 용량을 효과적으로 관리할 수 있다.

TTL 알고리즘은 캐시에 저장된 데이터의 유효 기간을 설정하여 캐시 메모리에서 유효하지 않은 데이터가 오래 머무르는 것을 방지한다. 이를 웹 브라우저의 캐시에 적용하면, 캐시된 데이터가 일정 기간이 지나면 자동으로 삭제된다. 이를 통해 사용자가 항상 최신 정보를 볼 수 있도록 보장할 수 있다.

profile
새로운 것에 관심이 많고, 프로젝트 설계 및 최적화를 좋아합니다.

0개의 댓글