msmasd

Redis 간단정리

Web
2018. 11. 1. 23:02

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 형태의 데이터구조가 존재한다.

  1. String
    1. Value가 단순한 String으로 되어있는 데이터 구조
  2. Set
    1. Value가 String의 집합체로 있다.
  3. Sorted Set
    1. Set에서 Score라는 가중치값이 있고, 이 가중치값으로 정렬되어져있다.
  4. Hash
    1. Value내에 Field: String Value쌍으로 있는 것들이 집합되어있는것
  5. List
    1. String들의 집합으로 Set과 유사하지만, Linked List처럼 Push, Pop이 가능하다.

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

'Web' 카테고리의 다른 글

Open Graph  (0) 2018.10.14

이 글을 공유합시다

facebook twitter googleplus kakaostory naver