Google 태그 관리자 아이콘
반응형

redis 3

.findout(Redis를 이용해 CyclicBarrier만들어보기)

고민 물리적/논리적으로 분리되어 있는 서버에서 특정 request가 몇번 들어올걸 체크하고 그 이후에 로직이 실행되었으면 좋겠다고 생각했다. 프로세스를 진행을 특정 request수가 총족될때까지 대기하는 시스템을 만들고 싶었다. 처음에는 이런건 메세징시스템에서 가능할거라 생각했지만 잘 아이디어가 안떠올랐고 지식이 없었다. 그래서 익숙한 redis를 사용해보기로 했다. 결론 자바에서는 스레드를 제어하는 방식이 여러개 있는데(CountDownLatch, CyclicBarrier, Phaser 등) 여기서 아이디어를 얻어서 Redis로 구현을 성공하였다. CyclicBarrier가 각 스레드에서 대기했다가 특정시점에 다시 시작되도록 하는 로직이어서 그렇게 구현했다. 접근방법 기본적으로 대기할 request 숫..

.use(@DataRedisTest)

고민 @SpringBootTest를 통해 테스트 중이었다. 테스트할때 딱 redis관련된것만 가져와서 로딩시간을 단축시킬 수 있을까했다. 결론 SpringBoot에서 @DataRedisTest를 제공한다. 이걸 사용해서 테스트시간을 단축시킬 수 있었다. 보다보니 jpa도 이런식으로 진행할 수 있는데 다음에 해보면 좋겠다. 실습 https://github.com/isgodflying/spring-data-test.git 위에서 프로젝트를 clone받아서 실행해 볼 수 있다. 접근방법 spring data redis는 properties에서 redis의 host, port가 설정이 가능하다. 설정 후에 아래처럼 코드를 써서 테스트해 볼 수 있다. Redis전용 configuration을 선언한 경우도 가능하..

.findout(RedisTemplate에서 prefix key만들기)

고민 이미 RedisTemplate를 많이 쓰고 있는 와중에 특정 spring profile에서만 prefix를 붙이는 니즈가 생겼다. cacheManager에서는 prefix를 지원하지만 cacheManager를 사용하고 있는 상황도 아니었고 모든걸 찾아 바꾸기에는 다른작업자분들의 내용이 있어 쉽지 않았다. 결론 정식으로 지원되는 메소드는 찾을 수 없었다. redisTemplate의 keySerializer 메소드로 해결할 수 있엇다. 접근방법 RedisConfig에서 RedisTemplate를 정의할때, setKeySerializer를 커스텀하게 만들어준다. @Configuration public class RedisConfig { @Autowired private PrefixedStringKeySe..

반응형