redis 3

통신 중 실패했을 때 재시도하기 (@Retryable, @Recover)

@retryable, @recover, retryTemplate, execute method를 활용했다. 위 내용의 예시로 Redis 통신이 실패했을 때(끊어졌을 때) @Retryable, @Recover를 활용 혹은 method가 실패했을 때 retryTemplate.execute 메서드 활용 일정 횟수 재시도 하여 결과를 반환하는 방식을 사용할 것이다. Amazon ElastiCache for Redis면 Redis 통신이 실패할 일이 없겠지만 직접 구축한 Redis라면 언제나 통신이 실패할 일을 염두해 두어야 한다. 그래서 위 같은 로직을 만들었다. 흐름은 아래와 같다. @SpringBootApplication @EnableRetry public class SampleTokenApplication ..

SpringBoot 2021.12.22

DB 통신 속도 증가 Cacheable CacheEvict redis 활용

무작정 Cache를 사용하게 되면 오히려 성능 저하가 올 수 있다. 따라서 자신이 가지고 있는 비즈니스로직에 정말 필요하다면 활용하길 바란다. @Cacheable, redis, @CacheEvict, redisConfig(lettuce) IDE : Intellij DB : Redis 글에서는 토큰 관리를 위해Redis, Cacheable, CacheEvict를 활용하였다. 하루 한 번 토큰을 갱신하는데계속 DB에 접근하기에는 성능이 저하가 우려되어 Cache 용도로 Redis를 활용하게 되었다. 흐름은 아래와 같다. RedisConfig 설정 @Configuration @EnableCaching public class RedisConfig { @Value("${spring.redis.host}") pri..

SpringBoot 2021.12.21

SpringBoot redis 활용(.haskey, .set, .get)

토큰 제한시간은 30분 만료시간 10분 이내에 재발급 하면 토큰이 재생성 되는 방식이다. 만료시간 이전에 토큰을 발급하면 바뀌지 않은 기존의 토큰이 발급된다. 위 내용을 예시로 진행할 예정이다. OS : Windows 10 Redis : docker, P3X Redis UI Java 14 redis 위주의 코드를 적을 계획이다. @Configuration public class RedisConfig { @Value("${spring.redis.host}") private String redisHost; @Value("${spring.redis.port}") private int redisPort; @Bean public LettuceConnectionFactory lettuceConnectionFacto..

DB 2021.10.22