Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- cache
- hashcode
- MSA
- Spring
- docker
- equals
- 열 속성
- select_type
- 바이너리 카운팅
- KEVISS
- Test
- 필드 주입
- 재정의
- jpa
- 생성자 주입
- jwt
- AOP
- java
- VUE
- static
- stream
- 조합
- DI
- 인덱스
- 테스트 코드
- SQL
- lambda
- StringBuilder
- DDL
- redis
Archives
- Today
- Total
백엔드 개발자 블로그
Redis 개념 본문
Redis란?
Remote Dictionary Server : 오픈 소스, 인 메모리 데이터 스토어
특징
- In-memory DB
- 성능이 빠름
- 휘발성(AOF, RDB snapshot로 Disk로 백업 가능)
- Big Size Data에 적합하지 않음
- key-value store
- 조회가 빠름
- Single Thread
- 동시성 제어가 편함
- 멀티 쓰레드보다는 느림
- 다양한 Data Type
사용사례
- Cache
- 빠른 조회를 위한 임시 저장소
- Session Store
- 서버에 Session 저장 시 Scale out 했을 때 문제 발생 -> redis 공유 저장소로 문제 해결
- Geospatial
- 위도 경도 데이터 저장해서 거리 비교 가능
- Leader board(순위)
- Sorted Sets : Score로 자동 정렬
- Pub/Sub
- Message
Data Type
- Strings
- 바이너리 데이터도 저장 가능 -> 이미지 저장도 가능
- json 직렬화한 데이터 저장 가능
- 증가/감소에 대한 원자적 연산 가능
- 단일 쓰레드라서 GET/SET만으로는 번거로움
- Lists
- LinkedList
- Stack이가 Queue 구현하는데 사용
- Sets
- 중복 no
- Sorted Sets
- 정렬
- 중복 no
- Leader boar(순위)와 Rate limit(초과시 차단) 구현하는 데 적절함
- Hashes
- field-value pair Collections - HashMap
- Geospatial
- 위도 경도 데이터 다룸
- Bitmap
- 0과 1로 이루어진 비트열
- 메모리를 적게 사용하여 대량의 데이터 저장에 유용
CLI
Redis vs MemCached
- DataType
- Redis : Hash, List, Set, Sorted Set, Geo, String
- Memcached : String
- Thread
- Redis : Single Thread
- Memcached : Multi Threads
- Scale
- Redis : ScaleOut
- Memcached : Scale Up
- Memory Policy
- Redis : no eviction, volatile-lru, volatile-ttl, allkey-random
- Memcached : LRU
- Persistence
- Redis : AOF, RDB
- MemCached : None
- ETC
- Redis : LUA Script를 사용해서 복잡한 작업들 할 때 이용 가능
Redis Library
- Jedis
- 개발 복잡도가 낮다.
- Lettuce
- 다양한 옵션이 존재한다.
- Scaling에 좋다.
- non-blocking, reactive application에 유리
아키텍처
- Stand Alone
- Master-Slave
- 보통 Master가 Write 작업을 담당, Slave가 Read 담당
- Sentinel
- Master 장애 시 Slave->Master, Master->Slave
- Cluster
- Master-Slave x n
- 샤딩 가능, 가용성 좋음
주의점
- 시간 복잡도 N이상인 명령어(전체 조회) 주의
- Single Thread라서 문제 발생할 수도 있음
'DB > Redis' 카테고리의 다른 글
Redis 설치 및 설정 (0) | 2024.03.15 |
---|---|
Redis UI Tools (0) | 2024.03.15 |
Redis 장애 상황과 대응 (0) | 2024.03.15 |
Redis CLI (0) | 2024.02.19 |