• 유지보수 접수 프로그램
    • 유지보수 접소 확정 시 유저에게 문자를 전송 함
    • 파트너(외근직)의 방문 시 유저는 문자의 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 서버가 클러스터(집합)로 구성돼 있는 것.(데이터를 여러 노드로 분산 저장, 클러스터 내의 각 노드는 데이터의 부분 집합을 관리.. 복잡한 어플리케이션일 때 사용한다고 우선 생각하자)
    • return Redisson.create(config);
      • 구성된 Redisson 'Config' 객체를 사용하여 Redisson 클라이언트를 생성하고 반환 

 

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이 남아있다면 남아있는 시간을 가져오게 된다.

+ Recent posts