메모리 캐싱(종종 단순히 캐싱이라고 함)은 컴퓨터 응용 프로그램이 컴퓨터의 주 메모리(즉,랜덤 액세스 메모리 또는 램)에 데이터를 일시적으로 저장하여 해당 데이터를 빠르게 검색 할 수 있도록하는 기술입니다. 임시 저장에 사용되는 램을 캐시라고 합니다. 램에 액세스하는 것은 하드 디스크 드라이브 나 네트워크와 같은 다른 미디어에 액세스하는 것보다 훨씬 빠르기 때문에 캐싱은 데이터에 대한 빠른 액세스로 인해 응용 프로그램이 더 빨리 실행되도록 도와줍니다. 캐싱은 응용 프로그램이 이전에 액세스한 데이터에 반복적으로 액세스하는 일반적인 패턴을 나타낼 때 특히 효율적입니다. 캐싱은 계산에 시간이 많이 걸리는 데이터 계산을 저장하는 데에도 유용합니다. 계산을 캐시에 저장함으로써 시스템은 계산의 반복을 방지하여 시간을 절약합니다.
메모리 캐싱은 어떻게 작동합니까?
메모리 캐싱은 먼저 캐시로 사용할 램의 일부를 따로 설정하여 작동합니다. 응용 프로그램은 일반적으로 데이터베이스와 같은 데이터 저장소 시스템에서 데이터를 읽으려고 할 때 원하는 레코드가 캐시에 이미 있는지 확인합니다. 이 경우 응용 프로그램은 캐시에서 데이터를 읽으므로 데이터베이스에 대한 액세스 속도가 느려집니다. 원하는 레코드가 캐시에 없으면 응용 프로그램은 원본에서 레코드를 읽습니다. 또한 해당 데이터를 검색할 때 데이터를 캐시에 기록하여 응용 프로그램이 나중에 동일한 데이터를 필요로 할 때 캐시에서 데이터를 빠르게 가져올 수 있도록 합니다.
캐시의 크기가 제한되어 있기 때문에 응용 프로그램에서 가장 최근에 액세스한 새 데이터를 위한 공간을 확보하기 위해 캐시에 이미 있는 일부 데이터를 제거해야 합니다. 즉,캐싱 시스템에는 공간을 확보하기 위해 레코드를 제거할 전략이 필요합니다. 이 전략은 응용 프로그램의 데이터 액세스의 특성에 따라 달라지며 일반적으로 곧 다시 액세스 할 것으로 예상되지 않는 레코드를 제거하려고합니다. 예를 들어 가장 최근에 사용한 전략은 캐시의 다른 레코드보다 먼저 마지막으로 액세스한 레코드를 제거합니다. 여기서 레코드에 액세스한 지 오랜 시간이 지난 경우 곧 다시 액세스하지 못할 가능성이 높다는 가정이 있습니다. 또는 다른 방법으로 말하면 최근에 가장 많이 사용 된 레코드가 곧 다시 사용될 것입니다. 가장 자주 사용되는 전략은 캐시에 있는 각 레코드의 액세스 수를 추적하고 가장 적은 액세스량으로 레코드를 제거하는 것입니다. 여기서 자주 사용되지 않는 레코드가 곧 다시 사용되지 않을 것이라고 가정합니다.
캐시의 문제는”캐시 누락”을 최소화하는 방법입니다.,캐시에 없는 레코드에 대해 응용 프로그램에서 읽기를 시도했습니다. 미스가 너무 많으면 캐시의 효율성이 떨어집니다. 새 데이터만 읽는 응용 프로그램은 캐시의 이점을 얻지 못하며 캐시를 확인하면서도 원하는 레코드를 찾지 못하는 추가 작업으로 인해 성능이 저하됩니다. 이 문제를 완화 할 수있는 한 가지 방법은 더 큰 캐시를 활용하는 것입니다. 이것은 종종 단일 컴퓨터에서 실용적이지 않으므로 분산 캐시는 더 큰 데이터 세트에 액세스해야하는 응용 프로그램의 속도를 높이기 위해 널리 사용됩니다. 분산 캐시는 클러스터에 연결된 여러 컴퓨터의 램을 함께 풀링하므로 클러스터에 더 많은 컴퓨터를 추가하여 계속 증가할 수 있는 더 큰 캐시를 만들 수 있습니다. 이러한 기술은 대규모 애플리케이션을 가속화하기 위해 분산 클러스터로 사용될 수 있습니다.
캐시의 또 다른 문제는 캐시의 데이터가 기본 원본의 최신 데이터를 반영하지 않는”오래된”데이터를 읽을 위험이 있다는 것입니다. 이 위험은 종종 응용 프로그램 성능을 위해 허용되는 절충안입니다. 그렇지 않은 경우 기본 데이터 원본을 업데이트하여 캐시의 해당 레코드를 업데이트하는 것은 응용 프로그램에 달려 있습니다.
예제 사용 사례
메모리 캐싱에 대한 광범위한 사용 사례 중 하나는 데이터베이스 응용 프로그램,특히 많은 데이터베이스 읽기를 수행하는 응용 프로그램을 가속화하는 것입니다. 데이터베이스 읽기의 일부를 캐시에서 읽기로 바꾸면 응용 프로그램은 빈번한 데이터베이스 액세스로 인해 발생하는 대기 시간을 제거할 수 있습니다. 이 사용 사례는 일반적으로 데이터베이스의 동적 콘텐츠를 제공하는 트래픽이 많은 웹 사이트와 같이 많은 양의 데이터 액세스가 표시되는 환경에서 찾을 수 있습니다.
또 다른 사용 사례에는 데이터베이스에 대한 복잡한 쿼리 결과가 캐시에 저장되는 쿼리 가속이 포함됩니다. 그룹화 및 순서와 같은 작업을 실행하는 복잡한 쿼리는 완료하는 데 상당한 시간이 걸릴 수 있습니다. 많은 사용자가 액세스하는 비즈니스 인텔리전스 대시보드의 경우와 마찬가지로 쿼리가 반복적으로 실행되는 경우 캐시에 결과를 저장하면 이러한 대시보드에서 응답성을 높일 수 있습니다.1683>최대 절전 모드 두 번째 수준 캐시
추가 읽기
캐싱 사용 사례
데이터베이스 캐싱
헤이즐캐스트 클라우드