kok202
[2019.03.13] Redis 간략히

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 길이까지 지원, 정수도 증감 연산 가능

 https://redis.io/commands/incr

 Set

 합집합, 교집합, 차집합 지원

 https://redis.io/commands/sinter

 Sorted set

 Rank가 있는 Set, 정렬 지원

 https://redis.io/commands/zremrangebyrank

 Hash 

 일반적인 해쉬

 https://redis.io/commands/hget

 Linked list

 양방향 linked list

 https://redis.io/commands/lrange


비고

이론적으로 2^32 데이터를 저장 가능

최적의 성능은 1000~5000개라고 함






데이터 유실을 방지하기 위한 방법론

1. Snapshot 방식

통으로 데이터를 저장하는 방식

스냅샷을 저장하고 이후에 들어온 데이터는 다음 스냅샷 전까지는 유실위험이 있다.

2. Append Of File

write, update 연산을 log 형태로 저장하고 서버를 재시작하면 log에 따라 operation을 순차 실해시켜 데이터를 복구하는 방식

3. 혼합 방식

스냅샷과 스냅샷 사이에는 Append Of File을 사용하는 방식