Redis

Redis - 2. Redis 배치 방식

matt5659 2021. 10. 4. 14:09

배치 방식


Redis의 캐싱 전략은 Redis를 어떻게 배치할 것인지를 나타내는 배치 방식을 뜻하며, Redis가 어떻게 배치되는지에 따라 시스템의 성능에 큰 영향을 미칠 수 있기 때문에 적절한 방식을 선택하여 운영 해야한다.

Look Aside (Lazy loading)

  • 이 구조는 캐시를 옆에 두고 필요할 때만 데이터를 캐시에 로드하는 전략을 사용한다.
  • Redis는 DB와 Application 사이에 위치하며 아래와 같이 동작한다.
  1. Application에서 Redis로 데이터를 요청한다.
  2. Redis에 해당 데이터가 없을 경우, DB로 데이터를 요청한다.
  3. Application에서는 DB에서 받아온 데이터를 Redis에 저장한다.
  • (장점) 실제로 사용되는 데이터만 캐시할 수 있고, Redis의 장애가 Application에 치명적인 영향을 주지 않는다.
  • (단점) 캐시에 없는 데이터를 조회할 때, DB에 데이터를 조회 해야하기 때문에 시간이 오래 걸린다.

Write-Through

  • DB에 데이터를 작성할 때마다 Redis에 데이터를 추가하거나 업데이트한다.
  • (장점) Redis의 데이터는 항상 최신 상태로 유지할 수 있다.
  • (단점) 데이터 입력 시 두 번의 과정을 거쳐야 하기 떄문에 지연 시간이 증가한다.
  • (단점) 사용되지 않는 데이터도 캐시에 저장 해야하기 때문에 리소스 낭비가 발생된다.
    이를 해결하기 위해 데이터 입력 시 Expire 설정을 사용하여 사용되지 않는 데이터를 삭제해야 한다.Look Aside (Lazy loading)
    • 이 구조는 캐시를 옆에 두고 필요할 때만 데이터를 캐시에 로드하는 전략을 사용한다.
    • Redis는 DB와 Application 사이에 위치하며 아래와 같이 동작한다.
    1. Application에서 Redis로 데이터를 요청한다.
    2. Redis에 해당 데이터가 없을 경우, DB로 데이터를 요청한다.
    3. Application에서는 DB에서 받아온 데이터를 Redis에 저장한다.
    • (장점) 실제로 사용되는 데이터만 캐시할 수 있고, Redis의 장애가 Application에 치명적인 영향을 주지 않는다.
    • (단점) 캐시에 없는 데이터를 조회할 때, DB에 데이터를 조회 해야하기 때문에 시간이 오래 걸린다.
    Write-Through
    • DB에 데이터를 작성할 때마다 Redis에 데이터를 추가하거나 업데이트한다.
    • (장점) Redis의 데이터는 항상 최신 상태로 유지할 수 있다.
    • (단점) 데이터 입력 시 두 번의 과정을 거쳐야 하기 떄문에 지연 시간이 증가한다.
    • (단점) 사용되지 않는 데이터도 캐시에 저장 해야하기 때문에 리소스 낭비가 발생된다.
      이를 해결하기 위해 데이터 입력 시 Expire 설정을 사용하여 사용되지 않는 데이터를 삭제해야 한다.