2019. 3. 13. 16:53ㆍ[정리] 데이터베이스/[NoSQL] Redis
Redis : REmote DIctionary Server 의 약자
Redis 포스트 내용 정리 출처 : https://bcho.tistory.com/654
Redis Command document : https://redis.io/commands
위 사이트에서 간략한 redis command를 사용해볼 수 있으니 참조
Redis 설치 간략히
brew install redis brew services start redis redis-cli redis-server * cli = Command Line Interface |
Redis 특징
메모리 기반의 key-value 타입
get - set 으로 데이터를 불러오고 저장한다.
수평적 확장이 쉬움
기능이 간단하고 용량도 얼마 안됨
데이터 로딩할 때 메모리 캐시 용도로 주로 씀
인메모리 데이터 베이스
메모리 유실을 막기위해 정기적으로 메모리 데이터를 디스크에 저장해서 서버 재시작시 자동 복원 한다.
Publisher : 송신전용
publish - 특정키로 특정 메세지를 보낼 수 잇음
Subscriber : 수신전용
subscribe - 특정키로 구독을 요청
on - 해당 키에 메세지가 올경우 데이터를 받아올 수 있음
다수의 클라이언트가 수신 가능
그렇기 때문에 서버가 대량의 클라이언트에게 메세지를 push 하는것 과 같은 효과를 볼 수 있다.
출처 : https://bcho.tistory.com/654
데이터 타입
타입 |
설명 |
테스트 |
String |
512MB 길이까지 지원, 정수도 증감 연산 가능 |
|
Set |
합집합, 교집합, 차집합 지원 |
|
Sorted set |
Rank가 있는 Set, 정렬 지원 |
|
Hash |
일반적인 해쉬 |
|
Linked list |
양방향 linked list |
비고
이론적으로 2^32 데이터를 저장 가능
최적의 성능은 1000~5000개라고 함
데이터 유실을 방지하기 위한 방법론
1. Snapshot 방식
통으로 데이터를 저장하는 방식
스냅샷을 저장하고 이후에 들어온 데이터는 다음 스냅샷 전까지는 유실위험이 있다.
2. Append Of File
write, update 연산을 log 형태로 저장하고 서버를 재시작하면 log에 따라 operation을 순차 실해시켜 데이터를 복구하는 방식
3. 혼합 방식
스냅샷과 스냅샷 사이에는 Append Of File을 사용하는 방식