전체 글 289

[Redis] Redis Pub / Sub

1. Redis Pub / Sub 이란?   - cluster 에 포함된 모든 노드에게 전송 가능  - 구독 상태일 때는 command 실행 불가  - 애플리케이션에 더 강력한 전달 보장이 필요한 경우 Redis Streams 사용 필요    2. Redis Pub / Sub 사용 방법   - SUBSCRIBE channel [channel ...]  으로 1개 이상의 채널 구독 가능 127.0.0.1:6379> SUBSCRIBE ROOM1Reading messages... (press Ctrl-C to quit)1) "subscribe"2) "ROOM1"3) (integer) 1      - PUBLISH [채널명] [메시지] 로 게시 가능 127.0.0.1:6379> PUBLISH ROOM1 star..

Redis/redis 2024.05.14

[Spring Data Redis] Redis Pub / Sub

1. Pub / Sub 이란?  - 발행 / 구독 구조  - 데이터는 middleware 를 통해서 전달  2.  Redis Pub / Sub  구조 특징   - 실시간으로 빠르게 통신   - 데이터가 유실이 될 가능성이 있음 ( 큐를 이용해 저장 x )   - 최대 1회 전송 패턴이 적합한 경우 ( 중복 전송 X )  3.  Redis Pub / Sub  이용 채팅방 구현   - Redis config 안에 Listener 관련 코드 추가  @Bean public RedisMessageListenerContainer redisMessageListenerContainer() { RedisMessageListenerContainer container = new RedisMessage..

[Spring Data Redis] HyperLogLog

1. Redis HyperLogLog 란?  - 확률적 자료구조를 사용하며 큰 데이터를 다룰 때 사용  - 유니크한 값의 개수를 계산할 때 사용   2. HyperLogLogOperations 사용 방법  -  private final RedisTemplate redisTemplate  으로 지정 후  -  redisTemplate.opsForHyperLogLog() 으로 호출 가능  -  redisTemplate.opsForHyperLogLog().add( [key 값], [Value 값]) 으로 데이터를 저장 가능  -  redisTemplate.opsForHyperLogLog().size([key 값]) 으로 데이터 크기 확인 가능  -  redisTemplate.opsForHyperLogLog()..

[Spring Data Redis] Sorted Sets

1. Redis Sorted Sets 란?  - set 과 유사  - 각 값은 score을 기준으로 정렬되어 있음  *시간 복잡도 관련해서는 다음 글을 참고https://kjwit.tistory.com/entry/Redis-sorted-sets ZADD trip_scores 10 tripId:1(integer) 1> ZADD trip_scores 12 tripId:3" data-og-host="kjwit.tistory.com" data-og-source-url="https://kjwit.tistory.com/entry/Redis-sorted-sets" data-og-url="https://kjwit.tistory.com/entry/Redis-sorted-sets" data-og-image="https:/..

[Spring Data Redis] Hashes

1. Redis Hashes 란?   - 하나의 key 값에 여러개의 field-value 값을 저장   -  객체와 유사   2. HashOperations 사용방법  -  private final RedisTemplate redisTemplate  으로 지정 후  -  redisTemplate.opsForHash() 으로 호출 가능  -  redisTemplate.opsForHash().put( [key 값], [Hash key값], [Hash Value 값]) 으로 데이터를 저장 가능  -  redisTemplate.opsForHash().putAll( [key 값], Map [Hash m]) 으로 데이터를 저장 가능  -  redisTemplate. opsForHash().get([key 값], ..