Redis 17

[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 값], ..

[Spring Data Redis] Sets

1. Redis Sets 란?  - 순서가 없는 집합  - 중복을 허용하지 않음  - 검색이 빠름   2. SetOperations 사용 방법  -  private final RedisTemplate redisTemplate  으로 지정 후  -  redisTemplate.opsForSet() 으로 호출 가능  -  redisTemplate.opsForSet().add( [key 값], [Value 값]) 으로 데이터를 저장 가능  -  redisTemplate.opsForSet().members([key 값]) 으로 전체 데이터 로드 가능  -  redisTemplate.opsForSet().isMember(  [key 값], [Value 값] ) 으로 데이터 존재 여부 확인 가능   3. SetOpe..

[Spring Data Redis] Lists

1. Lists 란?  -  Linked list 형태의 자료 구조 (인덱스 접근은 느리지만, 데이터 추가와 삭제가 빠름) https://kjwit.tistory.com/entry/%ED%95%AD%ED%95%B4-%EC%8B%AC%ED%99%94-%EA%B3%BC%EC%A0%95-5-%EC%9D%BC%EC%B0%A8  심화 과정 5 일차1. 자료구조 및 알고리즘 5일차 수강하기 - 링크드 리스트 2. 새롭게 알게된 지식 - 링크드 리스트의 노드 구성을 표현하면 다음과 같다 과제1: 역순 연결 리스트 https://leetcode.com/problems/reverse-linked-kjwit.tistory.com    - Queue와 Stack으로 사용할 수 있음 (Python 의 deque 와 유사)  ..

[Spring Data Redis] Strings

1. Redis Strings 란?   - 가장 기본적인 데이터 타입   - 바이트 배열을 저장   - 바이너리로 변환 가능한 모든 데이터를 저장 가능   -  키 1개에 최대 크기 512 MB 까지 value로 사용가능   - ValueOperations valueOps 로사용  2. ValueOperations 사용방법  -  private final RedisTemplate redisTemplate  으로 지정 후  -  redisTemplate.opsForValue() 으로 호출 가능  -  redisTemplate.opsForValue().set( [key 값], [Value 값]) 으로 데이터를 저장 가능  -  redisTemplate.opsForValue().get([key 값]) 으로 데..