본문 바로가기

Cache

(3)
Eviction, Expiration, Passivation cache는 속도를 위해 대부분 memory를 사용memory는 disk에 비해 사용 공간이 훨씬 적을 수 밖에 없음 Eviction - 공간이 필요할 때 어떤 데이터를 지워주는 것 - memory가 가득 차면 사용하지 않는 데이터를 지워줘야 새로 데이터가 들어올 수 있음 - 대부분 LRU(Least Recently Used : 가장 오랜 기간 참조되지 않은 데이터를 교체) 알고리즘 방식을 사용 Expiration - 데이터의 유통기한 - 일반적으로 TTL(Time To Live)이라는 단어를 사용 Passivation - 기능을 사용하면 eviction의 대상이 되는 데이터가 지워지기 전에 우선 디스크등 다른 스토리지에 저장 - 추후 같은 데이터에 대한 요청이 들어오면 파일에서 찾아 돌려줌
Redis Introduction 데이터 저장소로 디스크가 아닌 메모리를 사용데이터의 안전한 보관과 백업을 위해 다른 서버의 메모리에 실시간으로 복제할 수 있고, 디스크에 저장하는 방법을 제공초당 약 10만회의 명령을 처리하는 성능기본적으로는 key:value 구조 이지만, Lists, Sets, Sorted Sets, Hashes, Streams 같은 다양한 저장 방식 제공Redis Server Instance는 하나의 프로세스로 수행됨(CPU 1 core만 사용) - 서버 머신 or VM 하나에 여러 개의 Redis Server를 사용할 수 있음 [참조] - http://redisgate.kr/redis/introduction/redis_intro.php
memcached vs redis vs arcus memcached - 분산 메모리 캐싱 시스템 - 결과 데이터를 작은 단위의 key - value 형태로 메모리에 저장 - 필요로 하는 메모리가 부족한 경우 시스템에서 가져다 쓰기 편하게 함 - 논리적 결합으로 각각의 서버 메모리를 합해서 하나의 메모리 처럼 사용할 수 있게 해줌 (메모리 효율성이 좋음) redis - 가장 단순한 key - value 구조를 가지고 있음 - 다양한 데이터 타입 지원 (string, set, sorted set, hashes, list) arcus - memcached와 zookeeper를 기반으로 개발 됨 - memcached 프로토콜을 지원하고, memcached의 기본 성능 혜택은 유지 됨. - memcached 에서 확장 되어 추가로 제공하는 기능 - zookeep..