006 Reactive Operations

4. ReactiveOperations #

ReactiveValueOperations 실행 #

  • set으로 특정 key에 value를 추가
  • setIfAbsent로 key에 값이 없을때만 설정
  • get으로 key의 value를 조회
  • multiGet으로 여러 key에 접근
  • increment로 특정 key의 value를 증가 img.png img_1.png

ReactiveListOperations #

  • size: LLEN. list의 크기를 반환
  • leftPush: LPUSH. list의 head에 값을 추가
  • rightPush: RPUSH. list의 tail에 값을 추가
  • set: LSET. 특정한 index에 값을 설정
  • remove: LREM. list에서 value를 count 숫자만큼 제거
  • leftPop: LPOP. list의 head에서 값을 제거하고 반환
  • rightPop: RPOP. list의 tail에서 값을 제거하고 반환
  • delete: DEL. key에 설정된 list를 제거 img_2.png

ReactiveListOperations - Queue #

  • leftPush를 통해서 100, 200 값을 추가
  • size를 통해서 list의 크기를 출력
  • rightPop을 통해서 처음에 추가한 값들을 제거
  • 이를 통해서 queue를 구현 img_3.png img_4.png

ReactiveListOperations - Stack #

  • leftPush를 통해서 100, 200 값을 추가
  • size를 통해서 list의 크기를 출력
  • leftPop을 통해서 처음에 추가한 값들을 제거
  • 이를 통해서 stack을 구현 img_5.png img_6.png

ReactiveSetOperations #

  • add: SADD. value들을 set에 추가. 결과로 추가된 개수 반환
  • remove: SREM: set에서 item들 제거
  • size: SCARD. set의 cardinality 반환
  • isMember: SISMEMBER. set에 item이 포함되는지 확인
  • members: SMEMBERS. set의 모든 item 조회
  • delete: DEL. key에 설정된 set을 제거 img_7.png

ReactiveSetOperations 실행 #

  • add를 통해서 set에 값을 추가
  • size를 통해서 set의 cardinality를 출력
  • members로 모든 item 조회
  • isMember로 item이 set에 존재하는지 확인
  • remove로 set에서 item 제거 img_8.png img_9.png

ReactiveHashOperations #

  • remove: HDEL. hash에서 주어진 field key를 갖는 field들을 제거
  • get: HGET. hash에서 주어진 field의 value 조회
  • multiGet: HMGET. 여러 field의 value 조회
  • increment: HINCRBY. 특정 field의 value를 주어진 값만큼 증가
  • size: HLEN. hash의 field 크기 반환
  • putAll: HSET. 여러 field들을 한번에 추가
  • values: HGETALL. 모든 field들을 조회
  • delete: DEL. key에 설정된 hash를 제거 img_10.png

ReactiveHashOperations 실행 #

  • putAll로 여러 field를 한번에 추가
  • values로 모든 필드에 접근하여 flux로 반환
  • size으로 hash의 크기 조회
  • increment로 age 필드의 크기를 10만큼 증가
  • multiGet으로 여러 필드에 대한 값 조회
  • remove로 age 필드 제거 img_11.png img_12.png

ReactiveZSetOperations #

  • addAll: ZADD. sorted set에 value와 score들을 추가
  • remove: ZREM. set에서 value들을 제거
  • rank: ZRANK. 주어진 value의 순위를 반환
  • rangeWithScores: ZRANGE. 특정 범위 안의 value와 score를 조회
  • size: ZCARD. sorted set의 cardinality 반환
  • delete: DEL. key에 설정된 sorted set을 제거 img_13.png

ReactiveZSetOperations 실행 #

  • addAll로 여러 value를 한번에 추가
  • remove로 특정 value 제거
  • size으로 set의 크기 조회
  • rangeWithScores로 모든 value와 score 조회
  • rank로 특정 value의 순위 출력 img_14.png img_15.png

ReactiveStreamOperations #

  • add: XADD. streams에 record를 추가
  • createGroup: XGROUP. streams에 consumer group을 생성. group 이름 반환
  • range: XRANGE. 주어진 범위의 record를 반환
  • read: XREAD. 특정 offset 이후 혹은 최신 record를 count만큼 읽음. 최대 count개만큼 가져온 후 complete 이벤트 발생
    • consumer 제공 가능 img_16.png

ReactiveStreamOperations 실행 #

  • 10초동안 block되고 최대 2개를 받을 수 있는 option 생성
  • 10초가 지나면 next 이벤트 없이 complete 이벤트
    • latest를 통해서 최신 record 반환 img_17.png img_18.png

ReactiveHyperLogLogOperations #

  • add: PFADD. hyperloglog에 item을 추가
  • size: PFCOUNT. hyperloglog의 item 개수를 추정
  • delete: DEL. hyperloglog를 제거 img_19.png

ReactiveHyperLogLogOperations 실행 #

  • add로 여러 value를 한번에 추가
  • size로 hyperloglog의 크기를 추정 img_20.png img_21.png

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