005 Reactive Redis Template

3. ReactiveRedisTemplate #

ReactiveRedisTemplate #

  • ReactiveRedisTemplate은 Spring data redis reactive의 추상화 클래스
  • ReactiveRedisConnectionFactory를 통해서 RedisConnection을 주입 img.png

ReactiveRedisConnectionFactory #

  • ReactiveRedisConnectionFactory는 RedisConnection을 제공
  • LettuceConnectionFactory와 JedisConnectionFactory 구현체 img_1.png

RedisTemplate bean #

  • RedisReactiveAutoConfiguration를 통해서 자동으로 ReactiveRedisTemplate bean 생성
    • JdkSerializationRedisSerializer는 ObjectOutputStream을 이용하여 key와 value로 주어지는 object를 binary로 변환
  • key, value에 대해서 String만 지원하는 ReactiveStringRedisTemplate bean도 등록 img_2.png

ReactiveRedisOperations #

  • ReactiveRedisConnection에 직접 접근할 수 있는 execute, executeInSession 메소드
  • pub/sub 메소드
  • key와 관련된 메소드
  • 스크립트 메소드
  • operations 접근 메소드 img_3.png

pub/sub #

  • convertAndSend: destination 채널로 message를 전달하고 메시지를 받은 클라이언트의 숫자를 반환
  • listenToChannel: channels에 주어진 채널들을 listen하고 메시지를 Flux 형태로 전달 img_4.png

key 관련 #

  • hasKey: EXISTS. key가 존재하는지 확인
  • scan: SCAN. key들을 non-blocking으로 분할해서 순회
  • delete: DELETE. key들을 삭제
  • expire: EXPIRE. key에 TTL 부여
  • expireAt: EXPIREAT. unix time을 기반으로 key에 TTL을 부여
  • persist: PERSIST. key에 TTL 제거
  • getExpire: PTTL. key의 TTL을 milliseconds로 반환 img_5.png

Operations #

  • opsForValue: value
  • opsForList: list
  • opsForSet: set
  • opsForHash: hash
  • opsForZSet: sorted set
  • opsForStream: stream
  • opsForHyperLogLog: hyperLogLog img_6.png

  1. 강의 : Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지_