Redis?
Redis는 In-memory Key, Value 구조의 데이터 구조 스토어 입니다. 라는 사전적 의미를 가지고 있고 처음에는 막연하지만 막상? 알고 나면 되게 간단하고 쉽게 쓸 수 있는 데이터베이스 인 거 같다.
사전적 의미를 풀어보면 In-memory는 하드디스크와 같이 일반 저장소에 넣어서 보관하는 것이 아닌 메모리(RAM)에 저장이 되어있다. 그로 인해 속도가 일반 하드에 저장되어지는 것보다 엄청나게 빠르다. 대신 메모리에 저장을 해야 하므로 저장용량이 얼마 되지않는다. 그래서 캐시 디비로 주로 쓰인다.
Key, Value 구조는 일반 디비에는 테이블이 존재하고, 그 테이블안에 칼럼들을 미리 선언하고 데이터를 차곡차곡 넣는 방식이지만, Read시 속도에 대해서 테이블의 칼럼이 많고 데이터가 많으면 속도에 대해서 문제가 발생한다. 하지만 Key, Value 구조 데이터 구조는 넣는 방식이 Key로 구분하여 넣기때문에 Read시 시간복잡도가 O(n)이므로 속도가 엄청나게 빠르다. 하지만 Table구조와 다르게 Key를 잘 만들어서 데이터를 넣어야한다.
Key는 Naming이 중요한데, Key의 Naming은 용도:용도:PK이런식으로 되어지는듯 하다.(Ex: ARTICLE:LIST:1234)와 같이 네이밍을 한다.
Redis Data Type
Redis에는 String, set, sorted set, hash, list 형태의 데이터구조가 존재한다.
Redis Persistence
Redis는 메모리에 데이터가 저장되어지는데, 메모리에 저장되어지면 PC가 꺼지면 데이터가 휘발되어진다.(아무리 열심히해도 데이터가 날아간다..)
이를 방지하기 위해서 Redis는 데이터를 하드에 저장하는 방법이 있다. 두가지가 존재하는데 Snapshot과 Append Of File방식이다.
Command
Command는 데이터 타입에 따라 달라지는데 아래에는 참고할만한 사이트이다.
영어 https://redis.io/commands/mget
한글번역 http://www.w3big.com/ko/redis/sorted-sets-zrangebyscore.html
Open Graph (0) | 2018.10.14 |
---|