Spring WebFlux + Redis

1. redis-reactive, embedded redis ์˜์กด์„ฑ ์ถ”๊ฐ€

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-redis-reactive'
	implementation 'it.ozimov:embedded-redis:0.7.2'
    ...
}

2. redis์˜ ๋ฌธ์ž์—ด์˜ key value๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก Bean ๋“ฑ๋ก

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory;
import org.springframework.data.redis.core.ReactiveRedisOperations;
import org.springframework.data.redis.core.ReactiveRedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class BasicRedisConfig {

    @Primary
    @Bean
    ReactiveRedisOperations<String, String> redisOperations(ReactiveRedisConnectionFactory factory) {
        RedisSerializer<String> serializer = new StringRedisSerializer();
        RedisSerializationContext<String, String> serializationContext = RedisSerializationContext
                .<String, String>newSerializationContext()
                .key(serializer)
                .value(serializer)
                .hashKey(serializer)
                .hashValue(serializer)
                .build();

        return new ReactiveRedisTemplate<>(factory, serializationContext);
    }
}

3. test ๋ฐ ๋กœ์ปฌ test๋ฅผ ์œ„ํ•œ embedded redis ์„ค์ •

4. handler ์ž‘์„ฑ

- loadData(): 10๋งŒ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ๋กœ๋“œ ๋ฉ”์„œ๋“œ

- findReactorList(): ๋น„๋™๊ธฐ, ๋…ผ๋ธ”๋กœํ‚น ๋ฐฉ์‹์˜ ๋ฉ”์„œ๋“œ

- findNormalList(): ๋™๊ธฐ, ๋ธ”๋กœํ‚น ๋ฐฉ์‹์˜ ๋ฉ”์„œ๋“œ

5. router ๋“ฑ๋ก

- ๋“ฑ๋ก์‹œ bean์ด๋ฆ„์ด ๋‹ค๋ฅธ router์™€ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ์กฐ์‹ฌํ•ด์•ผํ•จ. ๋™์ผ ์ด๋ฆ„์˜ bean 2๊ฐœ ๋งŒ๋“ค๋ ค๊ณ ํ•˜๋ฉด์„œ ์‹คํŒจํ•˜๊ฒŒ ๋จ

์ถœ์ฒ˜ : https://wellbell.tistory.com/238

Last updated