Redis란?
- remote Dictionary System 약자로 In-Memory Data Structure Store
- 메모리 기반의 key/ value store
- 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 비관계형 데이터베이스 관리 시스템.
- 메모리에 저장된 내용을 지속시키기 위해 파일을 동기화하는 기능 제공
사용하는 이유?
In-memory 기반으로 빠른 속도!
용량은 다소부족. 메인 DB보다는 보조적인 수단으로 캐시 데이터 서버로 사용.
Redis특징
- 메모리 기반이기 때문에 휘발성, 전원이 꺼지면 모든 데이터가 사라짐.
- 파일 메모리상의 데이터를 저장해두고 redis 서버 실행시 다시 그 파일에서 데이터를 읽어와 메모리상에 올리는 방법 이용
- 데이터 크기가 메모리에 제한되므로 메모리 크기 이상의 데이터를 저장하기 위해선 redis Cluster 추가 필요
- Redis는 2가지 RDB와 AOF의 지속성을 제공
두가지 지속성 중에 한가지만 선택하는 것이 아닌 두가지 모두 사용 가능
두가지 지속성 모두 사용하도록 설정한 상태에서 redis-server를 실행하면 AOF를 이용, 메모리에 데이터를 올림.
Redis 데이터 타입
- String : MAX 512MB의 문자 저장 기능, 문자 뿐만 아니라 이진 데이터도 저장 가능
- Lists : Redis Lists는 String형 Lists, LPUSH와 RPUSH로 나뉨
- Sets : 순서를 보장하지 않는 String Collections(테이블), 한 key에 중복된 데이터 존재 불가
- Hashes : String Field와 String Values 사이의 맵, 객체를 나타내는데 사용 가능한 데이터형
- Sorted sets : Sets와 유사, 비반복 String Collection,Score 순서를 보장해주는 Collection
Reference
블로그
우아한테크세미나 REDIS