기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
API 호환 읽기-스루 래퍼 설계
DynamoDB 데이터베이스에 캐싱 계층을 도입할 때 일반적으로 광범위한 클라이언트 측 코드 수정을 피하려고 합니다. 이를 수행하는 한 가지 방법은 DynamoDB 클라이언트를 래핑하고 호출자에게 동일한 인터페이스를 제공하는 클라이언트 측 심 클래스를 도입하는 것입니다. 모든 캐싱 로직은 래퍼 클래스에 포함되며 호출자에게 암시적이고 보이지 않게 수행됩니다.
예를 들어 다음 코드 샘플은 DynamoDB 클라이언트, ElastiCache(Redis OSS) 클라이언트 및 CacheClient
심을 구성합니다. 심은 DynamoDB 클라이언트와 비슷하며 내부적으로 dynamodb_client
를 사용하여 데이터베이스와 통신하고 redis_client
를 사용하여 캐싱을 제공합니다.
dynamodb_client = boto3.client("dynamodb") redis_client = Redis(host='hostname', port=6379, decode_responses=True, ssl=True, read_from_replicas=True) cache_client = CacheClient(dynamodb_client, redis_client, ttl=60*60)
이 접근 방식은 캐싱을 도입하기 위해 애플리케이션을 변경할 필요가 없습니다.