- 유지보수 접수 프로그램
- 유지보수 접소 확정 시 유저에게 문자를 전송 함
- 파트너(외근직)의 방문 시 유저는 문자의 url을 눌러 유지보수 접수상의 실제 방문 시간을 확정 지음
- 해당 url의 유효시간을 24시간으로 설정하고자 실습하게 됨
Redis 및 Embedded Redis 의존성 주입
2024.03.18 - [Java/Spring] - [에러] SLF4J: Class path contains multiple SLF4J bindings
- exclude 부분이 왜 들어가는지는 참조
Redis 서버가 어플리케이션 서버와 함께 하기 위한 설정
RedissonClient Bean 등록 과정 (loc(Invergion of Control) 컨테이너의 관리 위해)
- redissonClient 메서드는 RedissonClient 클라이언트를 생성하고 반환한다.
- Config config = new Config();
- RedissonClient의 환경구성 설정을 위해 Config 객체 생성
- useSingleServer()
- Redisson의 싱글 서버 모드를 사용함 (Redis 클러스터가 아닌)
- 단일 Redis 서버는 Reids 데이터베이스가 단일 인스턴스로 실행되는 것을 말함. (쉽게 생각해서 단순한 어플리케이션이니까 일단 이거 사용)
- Redis 클러스터는 여러 대의 Redis 서버가 클러스터(집합)로 구성돼 있는 것.(데이터를 여러 노드로 분산 저장, 클러스터 내의 각 노드는 데이터의 부분 집합을 관리.. 복잡한 어플리케이션일 때 사용한다고 우선 생각하자)
- Redisson의 싱글 서버 모드를 사용함 (Redis 클러스터가 아닌)
- return Redisson.create(config);
- 구성된 Redisson 'Config' 객체를 사용하여 Redisson 클라이언트를 생성하고 반환
- Config config = new Config();
RedissonClient 및 .Bucket() 메서드 사용해보기
- visitUrlTtl = 24 * 60 * 60 * 1000;
- 1초는 1000 밀리초니까 요렇게 24시간을 구성해준다.
- redissonClient.getBucket("visit-url" + maintenanceId).set(Url, visitUrlTtl, TimeUnit.SECONDS);
- getBucket은 키-값 쌍으로 데이터를 저장하고 관리해주는 Redis 서버 데이터 저장 컨테이너이다.
- 키 부분, "visit-url" + maintenanceId
- 값 부분, set의 Url.
- 이후 visitUrlTtl은 위에서 설정해준 해당 Bucket 즉 컨테이너의 유효 시간
- TimeUnit.SECONDS
- 유효 시간을 나타내주는 타입을 설정 한다.
- SECONDS, MINUTES, HOURS, DAYS 등이 있다.
- 이후에 나올 메서드 .remainTimeToLive() (Bucket의 남은 시간 표기) 등에서의 표기법이 달라지게 된다.
- 예제는 SECONDS 지만 이후 나는 HOURS 로 표기법을 바꿔줬다.
.getBucket 및 .remainTimeToLive() 메서드 사용해보기
- .getBucket
- 해당 RedissonClient 컨테이너를 가지고 온다.
- .remainTimeToLIve()
- 해당 Bucket의 ttl을 가져온다.
- ttl 자체가 생성된 적이 없다면 -2
- ttl이 만료 됐다면 -1
- ttl이 남아있다면 남아있는 시간을 가져오게 된다.
- 해당 Bucket의 ttl을 가져온다.
'Java > Spring' 카테고리의 다른 글
PasswordEncoder 알고리즘 이모저모 (0) | 2024.04.15 |
---|---|
@RequestParam과 @PathVariable의 차이점 (페이지 변화) (1) | 2024.03.30 |
[에러] SLF4J: Class path contains multiple SLF4J bindings (0) | 2024.03.18 |
Test 이모저모 - @withMockUser (0) | 2024.03.06 |
Test 이모저모 - Jackson 활용 (ObjectMapper.writeValueAsString) (0) | 2024.03.06 |