program story

Redis 캐시 및 메모리 직접 사용

inputbox 2020. 7. 27. 07:55
반응형

Redis 캐시 및 메모리 직접 사용


아직 Redis를 사용하지는 않았지만 그것에 대해 듣고 캐시 저장으로 시도 할 계획입니다.

Redis가 메모리를 캐시 저장소 데이터베이스로 사용한다고 들었으므로 변수를 객체 또는 사전 데이터 유형으로 사용하여 데이터를 저장하는 경우의 차이점은 무엇입니까? 처럼:

var cache = {
    key: {

    },
    key: {

    }
    ...
}

Redis의 장점은 무엇입니까?


Redis는 원격 데이터 구조 서버입니다. 데이터를 로컬 메모리에 저장하는 것보다 확실히 느립니다 (데이터를 가져 오기 / 저장하기 위해 소켓 왕복이 필요하기 때문에). 그러나 몇 가지 흥미로운 속성이 있습니다.

  • Redis는 애플리케이션의 모든 프로세스에서 액세스 할 수 있으며 여러 노드에서 실행될 수 있습니다 (로컬 메모리로는 달성 할 수없는 것).

  • Redis 메모리 스토리지는 매우 효율적이며 별도의 프로세스로 수행됩니다. 메모리가 가비지 수집 된 플랫폼 (node.js, java 등)에서 응용 프로그램을 실행하는 경우 훨씬 더 큰 메모리 캐시 / 저장소를 처리 할 수 ​​있습니다. 실제로, 매우 큰 힙은 가비지 수집 언어에서 제대로 수행되지 않습니다.

  • Redis는 필요한 경우 디스크의 데이터를 유지할 수 있습니다.

  • Redis는 단순한 캐시 그 이상입니다. 다양한 데이터 구조, 다양한 항목 제거 정책, 블로킹 큐, pub / sub, 원 자성, Lua 스크립팅 등을 제공합니다.

  • Redis는 고 가용성을 구현하기 위해 마스터 / 슬레이브 메커니즘으로 활동을 복제 할 수 있습니다.

기본적으로 동일한 데이터를 공유하는 여러 노드에서 애플리케이션을 확장해야하는 경우 Redis (또는 다른 원격 키 / 값 저장소)와 같은 것이 필요합니다.


현재 우리는 각 요청이 다른 컨테이너로 갈 수있는 서버 아키텍처가 덜 매력적입니다.이 경우 redis는 매우 중요한 역할을 할 수 있습니다.

요청이 단순 캐시가 저장된 동일한 컨테이너에서 제공되는지 확신 할 수 없으므로 서버에서 단순 캐시를 사용할 수 없습니다.

이 경우 원격 위치에 캐시를 저장하기 때문에 redis를 사용해야하며 서버가 적은 아키텍처의 컨테이너 변경에도 액세스 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/19477821/redis-cache-vs-using-memory-directly

반응형