Infra/Redis

Redis에 대한 정보 모음

simDev1234 2022. 10. 20. 16:14

1. 레디스 개념 및 특징

https://www.youtube.com/watch?v=Gimv7hroM8A 

https://www.youtube.com/watch?v=mPB2CZiAkKM 

- 이탈리아의 한 해커가 MySQL 로 작업 중 DB 처리 속도가 너무 느린 것을 보고 레디스를 만들었다.
- REDIS : Remote (외부에 있는) Dictionary (Key-Value형태) Server (서버)
- 공식문서에 따르면, Redis는 인메모리 기반의 data structure store로,
   db/cache/message broker, streaming engine으로 사용될 수 있다고 한다.
  * 단, 많은 개발자들은 Redis를 Store가 아닌 Cache라고 분류한다.
  * Redis는 지속성을 보장하기 위해 데이터를 Disk에 저장할 수 있다.
- Redis는 NoSQL로 분류되며, Key-Value 형태로 데이터를 저장하는데,
  Value 타입으로 문자열, 해쉬, 리스트, Set, sorted Set 형태의 다양한 자료구조를 지원한다.
- Redis는 기본적으로 Single-Threaded이며, 자료구조는 Atomic 한 성질을 가지고 있다. 
  * 서로 다른 트랜잭션에 대한 Read/Write를 동기화한다.

- 언제 쓸까? 
> 싱글 서버일 때 : Atomic 자료구조 + 캐시 기능 사용
ㄴ 이메일 인증 기능
ㄴ 좋아요, 조회수 처리
ㄴ 랭킹 보드로 사용
ㄴ 유저 API 제한 : ex. 주문 시 재고 확인
  * 캐시 : 여기서의 캐시란, 나중에 할 요청 처리를 미리 저장해 두었다가 빠르게 서비스해주는 걸 말한다.

- 주의할 점
> 싱글 쓰레드 서버이므로 시간 복잡도를 고려해야한다.
> 인-메모리 특성상 메모리 파편화, 가상 메모리 등의 이해가 필요하다.

- 싱글 쓰레드를 쓰는 이유?
> 비동기, 컨텍스트 스위칭 효율성 등

https://codingmania.tistory.com/18

https://blog.kingbbode.com/25

 

2. 레디스의 활용 사례

https://happyer16.tistory.com/entry/%EB%A0%88%EB%94%94%EC%8A%A4Redis%EC%9D%98-%EB%8B%A4%EC%96%91%ED%95%9C-%ED%99%9C%EC%9A%A9-%EC%82%AC%EB%A1%80

 

레디스(Redis)의 다양한 활용 사례

들어가기 전에 나는 아직 실력이 부족한 개발자여서 레디스=캐시 로의 의미로만 이해하고 있었다. 대부분의 서비스에서 단순 캐시용도로만 사용하기도 한다. 레디스에 대해 정확히 이해를 하지

happyer16.tistory.com

 

3. 레디스를 통해 캐시 처리하기

- 레디스를 언제 캐시로 사용하면 좋은가?

https://yonguri.tistory.com/82

- 레디스를 캐시로 사용한 사례(정리가 정말 깔끔하다.)

https://www.woolog.dev/backend/spring-boot/spring-boot-redis-cache-simple/#%EC%82%AC%EC%9A%A9-%ED%95%A0-redis-%EA%B0%84%EB%8B%A8-%EC%84%A4%EB%AA%85

- 레디스를 통해 조회수 처리하기

https://dev-monkey-dugi.tistory.com/151

- 레디스를 통해 좋아요 처리하기

https://intrepidgeeks.com/tutorial/create-a-good-spring-boot-redis-cache-system.

 

4. 레디스의 Redisson을 통해 분산락 처리하기

https://kkambi.tistory.com/196

레디스를 통해 재고관리하기 https://mslim8803.tistory.com/74?category=1005542 

 

6. 레디스 사용 방법 (공식 사이트)

https://redis.io/docs/about/

 

Introduction to Redis

Learn about the Redis open source project

redis.io