

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 복제본에 읽기 배포(클러스터 모드 비활성화됨)
<a name="BestPractices.Clients-lettuce-cmd-readfrom"></a>

복제본이 있는 클러스터 모드 비활성화 클러스터의 경우 Lettuce's를 `ReadFrom` 설정과 `StaticMasterReplicaTopologyProvider` 함께 사용하여 쓰기를 프라이머리 노드로 보내고 복제본 간에 읽기를 배포할 수 있습니다. 이렇게 하면 기본에서 읽기를 오프로드하여 읽기 처리량이 향상됩니다.

쓰기에는 기본 엔드포인트를 사용하고 읽기에는 리더 엔드포인트를 사용합니다. 리더 엔드포인트는 사용 가능한 복제본 간에 연결을 자동으로 로드 밸런싱합니다.

```
// Primary endpoint for writes, reader endpoint for read distribution
RedisURI primaryURI = RedisURI.Builder.redis("primary-endpoint.cache.amazonaws.com")
    .withPort(6379).withSsl(true).build();
RedisURI readerURI = RedisURI.Builder.redis("reader-endpoint.cache.amazonaws.com")
    .withPort(6379).withSsl(true).build();

RedisClient redisClient = RedisClient.create(clientResources);
redisClient.setOptions(clientOptions);

// Open a primary-replica connection using the StaticMasterReplicaTopologyProvider
StatefulRedisMasterReplicaConnection<String, String> connection =
    MasterReplica.connect(redisClient, StringCodec.UTF8, Arrays.asList(primaryURI, readerURI));

// Direct reads to replicas, writes always go to the primary
connection.setReadFrom(ReadFrom.REPLICA_PREFERRED);
```

다음 `ReadFrom` 옵션을 사용할 수 있습니다.
+ `REPLICA_PREFERRED` - 사용 가능한 경우 복제본에서 읽고 기본으로 돌아갑니다(대부분의 사용 사례에 권장).
+ `REPLICA` - 복제본에서만 읽습니다. 사용 가능한 복제본이 없는 경우 실패합니다.
+ `PRIMARY_PREFERRED` - 기본 읽기에서 복제본으로 돌아갑니다.
+ `ANY_REPLICA` - 복제본 노드에서 읽습니다.
+ `PRIMARY` - 프라이머리 노드에서만 읽습니다. 강력한 일관성이 필요한 경우를 사용합니다.

**참고**  
복제는 비동기식이므로 복제본에서 읽은 데이터는 약간 오래된 것일 수 있습니다. 애플리케이션에 강력한 일관성이 필요한 경우 `ReadFrom.PRIMARY` 또는를 사용합니다`ReadFrom.PRIMARY_PREFERRED`.