728x90
반응형
Gradle 설정
dependencies {
implementation group: 'com.google.guava', name: 'guava', version: '19.0'
implementation group: 'io.lettuce', name: 'lettuce-core', version: '4.5.0.RELEASE'
implementation group: 'org.latencyutils', name: 'LatencyUtils', version: '2.0.3'
implementation group: 'io.netty', name: 'netty-all', version: '4.1.68.Final'
implementation group: 'io.reactivex.rxjava3', name: 'rxjava', version: '1.3.4'
implementation group: 'org.springframework.data', name: 'spring-data-commons', version: '1.13.23.RELEASE'
Implementation group: 'org.springframework.data', name: 'spring-data-keyvalue', version: '1.2.23.RELEASE'
implementation group: 'org.springframework.data', name: 'spring-data-redis', version: '1.8.23.RELEASE'
implementation group: 'org.springframework.session', name: 'spring-session-data-redis', version: '1.3.1.RELEASE'
implementation group: 'org.springframework.session', name: 'spring-session', version: '1.3.1.RELEASE'
implementation group: 'com.google.guava', name: 'failureaccess', version: '1.0.1'
}
XML(redis-context.xml) 설정
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
<!-- 세션설정 -->
<bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
<!-- 세션 타임아웃 시간(초 단위) -->
<property name="maxInactiveIntervalInSeconds" value="3600" />
</bean>
<!-- 레디스 연결설정(Lettuce 사용) -->
<bean id="lettuceFactory" class="org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory">
<constructor-arg>
<ref bean="sentinelConfiguration" />
</constructor-arg>
<!-- 레디스 연결정보(DB Index, 비밀번호) -->
<property name="database" value="0" />
<property name="password" value="마스터노드 비밀번호" />
</bean>
<!-- 센티널 연결정보(마스터 노드명, 센티널 호스트와 포트정보) -->
<bean id="sentinelConfiguration" class="org.springframework.data.redis.connection.RedisSentinelConfiguration">
<constructor-arg value="마스터 노드명" />
<constructor-arg>
<set>
<!-- 센티널 IP와 포트는 ,로 구분 -->
<value>1번IP:포트,2번IP:포트,3번IP:포트,...</value>
</set>
</constructor-arg>
</bean>
<!-- 레디스 템플릿 빈 등록 -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="lettuceFactory" />
</beans>
주의사항
1) jar의 버전이 서로 맞지 않으면 연결이 되지 않음. NoSuchMethodException, NoClassDefFoundError 등의 Exception이 발생
2) 센티널의 IP와 포트를 작성할때는 "를 사용하지 않고 작성
3) 연결이 완료되면 기존의 마스터로 지정되었던 노드를 내리고 Replica가 마스터가 되었는지 확인 필요
728x90
반응형
'데이터베이스' 카테고리의 다른 글
[레디스] 스프링4.0 레투스 풀 설정(XML, JAVA) 샘플코드 (2) | 2023.12.22 |
---|---|
[Redis] Redis Starts with Docker And WebFlux(2) (0) | 2023.04.09 |
[Redis] Redis Starts with Docker And WebFlux(1) (0) | 2023.04.02 |
[DB]SELECT - ORDER BY, WHERE, JOIN (0) | 2021.06.11 |
[DB] SyBase에서 사용하는 기능들 (0) | 2021.03.29 |
댓글