티스토리 뷰

공부

[Spring] Redis multiple

승가비 2022. 6. 6. 05:27
728x90
@Configuration
@EnableConfigurationProperties(RedisProperties::class)
class RedisRepositoryConfig(
    private val redisProperties: RedisProperties,
) {
    @Primary
    @Bean
    fun redisFactoryDefault(): LettuceConnectionFactory {
        return connection(redisProperties.default)
    }

    @Bean
    @Qualifier("redisDefault")
    fun redisDefault(): RedisTemplate<String, Any> {
        return template(redisFactoryDefault())
    }

    @Bean
    fun redisFactoryContent(): LettuceConnectionFactory {
        return connection(redisProperties.content)
    }

    @Bean
    @Qualifier("redisContent")
    fun redisContent(): RedisTemplate<String, Any> {
        return template(redisFactoryContent())
    }

    @Bean
    fun redisFactoryCommerce(): LettuceConnectionFactory {
        return connection(redisProperties.commerce)
    }

    @Bean
    @Qualifier("redisCommerce")
    fun redisCommerce(): RedisTemplate<String, Any> {
        return template(redisFactoryCommerce())
    }

    companion object {
        fun connection(redis: Redis): LettuceConnectionFactory {
            val redisConfiguration = RedisStaticMasterReplicaConfiguration(redis.writer.host, redis.writer.port)
            redisConfiguration.addNode(redis.reader.host, redis.reader.port)

            val clientConfig =
                LettuceClientConfiguration.builder().readFrom(
                    ReadFrom.REPLICA_PREFERRED
                ).build()

            return LettuceConnectionFactory(redisConfiguration, clientConfig)
                .also {
                    it.eagerInitialization = true
                }
        }

        fun template(connection: LettuceConnectionFactory): RedisTemplate<String, Any> {
            val template = RedisTemplate<String, Any>()

            val serializer = StringRedisSerializer()
            template.keySerializer = serializer
            template.valueSerializer = serializer
            template.hashKeySerializer = serializer
            template.hashValueSerializer = serializer
            template.setConnectionFactory(connection)

            return template
        }
    }
}

https://velog.io/@kenux/SpringBootRedis1

 

[Spring Boot + Redis] Redis Multi Database 사용

스프링 부트와 Redis 활용한 멀티 DB 연결 테스트

velog.io

https://developpaper.com/spring-boot-multi-data-source-redis-configuration/

 

Spring boot multi data source redis configuration - Develop Paper

Summary Based on spring boot 2.0.7, this paper explains how to configure redis with multiple data sources. Lettuce is used as the redis client, and an example code is attached. Redis configuration configuration file skyarthur: redis1: host: 127.0.0.1 port:

developpaper.com

https://basketdeveloper.tistory.com/77

 

[Kotlin] Springboot + Redis 사용법

Redis는 메모리 DB로 일반적인 DB(disk를 사용)보다 속도가 빠릅니다. 그렇기 때문에 대량의 데이터를 다루는 서비스에서 캐시 서버로서 많이 사용됩니다. 해당 글에서는 코틀린을 사용해 Springboot +

basketdeveloper.tistory.com

 

728x90

'공부' 카테고리의 다른 글

[git] prepare-commit-msg  (0) 2022.06.06
[Gradle] getting started  (0) 2022.06.06
[Postman] Environments Variables  (0) 2022.06.06
[Architecture] Lambda  (0) 2022.06.06
[gradle] implementation vs api  (0) 2022.06.06
댓글