사용자 도구

사이트 도구


nosql:redis:lettuce

문서의 이전 판입니다!


Lettuce - Redis Java Client

Replica

  • spring-data-redis 를 사용하고, AWS AWS ElasticCache 의 replica 를 사용하는 경우에는 org.springframework.data.redis.connection.RedisStaticMasterReplicaConfiguration 를 서버 설정으로 사용해서 모든 replica 를 지정해줘야 한다.
  • AWS ElasticCache 가 아니고 INFO 명령으로 제대로 replica 정보를 알 수 있는 경우에는 그냥 master 주소만 지정해서 RedisStandaloneConfiguration 를 사용해도 되는 듯.
  • ReadFrom 의 설정값이 ANY 를 제외하고는 특정 순서를 따르게 돼 있는데, 이로 인해 오히려 부하 분산이 제대로 안된다. 다음과 같은 형태로 별도의 ReadFrom 구현체를 사용해야 random 부하 분산이 된다(Lettuce 5.2 이상?).
public class ReadFromReplicaUnOrderSensitive extends ReadFrom {
    @Override
    public List<RedisNodeDescription> select(Nodes nodes) {
        return ReadFrom.REPLICA.select(nodes); // 그냥 REPLICA_PREFERRED 가 나아보이기도 하고?
    }
 
    /**
     * default 값이 기본 {@code false} 이긴 하지만 혹시나 모를 코드 변경에 대비하여 명시적 override.
     * @see ReadFrom#isOrderSensitive()
     */
    @Override
    protected boolean isOrderSensitive() {
        return false;
    }
 
}
  • AWS Elastic Cache 의 경우 Read Only endpoint 를 따로 생성하고 자체적으로 round robin 을 하기 때문에 불필요한 설정일 듯(단, 이 경우 connection 이 하나만 맺어지는지 확인 필요).

Redis Cluster

Client Side Caching

참조

nosql/redis/lettuce.1669020167.txt.gz · 마지막으로 수정됨: 2022/11/21 17:42 저자 kwon37xi