728x90
이번 포스트에서는 springboot에 redisson으로 global 캐시를 구성합니다
환경
- springboot 3.1.10
- gradle 8.7
- java 17
의존성을 추가해줍니다
implementation 'org.redisson:redisson-spring-data-30:3.31.0'
application.yml 에 설정값을 추가해줍니다
redis:
redisson:
config: |
clusterServersConfig:
idleConnectionTimeout: 10000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
failedSlaveReconnectionInterval: 3000
failedSlaveCheckInterval: 60000
password: null
subscriptionsPerConnection: 5
clientName: null
loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
slaveConnectionMinimumIdleSize: 24
slaveConnectionPoolSize: 64
masterConnectionMinimumIdleSize: 24
masterConnectionPoolSize: 64
readMode: "SLAVE"
subscriptionMode: "SLAVE"
nodeAddresses:
- "redis://127.0.0.1:6380"
- "redis://127.0.0.1:6381"
- "redis://127.0.0.1:6382"
scanInterval: 1000
pingConnectionInterval: 0
keepAlive: false
tcpNoDelay: false
threads: 16
nettyThreads: 32
codec: !<org.redisson.codec.Kryo5Codec> {}
transportMode: "NIO"
Configuration 클래스를 추가합니다
@Configuration
public class RedissonSpringDataConfig {
@Bean
public RedissonConnectionFactory redissonConnectionFactory(RedissonClient redisson) {
return new RedissonConnectionFactory(redisson);
}
@Bean(destroyMethod = "shutdown")
public RedissonClient redisson(@Value("${spring.redis.redisson.config}") String configFile) throws IOException {
Config config = Config.fromYAML(new ByteArrayInputStream(configFile.getBytes(StandardCharsets.UTF_8)));
return Redisson.create(config);
}
@Bean
public org.springframework.cache.CacheManager redissonCacheManager(RedissonClient redissonClient) {
return new RedissonSpringCacheManager(redissonClient);
}
}
참고링크:
'스프링 프레임워크' 카테고리의 다른 글
Implementing Redis Cache in Spring Boot: From Basic Setup to Serialization (1) | 2025.03.17 |
---|---|
spring aop와 annotation 맛보기 (1) | 2024.09.03 |
springboot에 CacheResolver로 MultipleCacheManager 구성하기 (0) | 2024.06.18 |
springboot에 JCache로 ehcache 로컬캐시 적용하기 (0) | 2024.06.17 |