Redis Persistance


Redis Persistance 특징을 활용해 데이터를  저장하는 방법은 2가지가 존재한다.



RDB Mode 와 AOF Mode





RDB Mode


1) 정의


특정 시점 또는 반복적으로 메모리에 있는 전체 데이터를 디스크에 저장한다.



2) 장점


- 파일크기가 작아 AOF보다 로딩시간이 빠르다.




3) 단점


- 특정 시점에 데이터를 저장함에 따라 이슈 발생 시 데이터가 유실 될 수 있다.

ex)  13시에 데이터를 백업 하고 13시 30분에 장애가 발생하면 13시에서 13시 30분 사이의 데이터는 복구 불가능하다.


- 바이너리 파일로 백업을 제공한다. 





AOF Mode



1) 정의


명령이 실행될 때마다 기록이 저장된다.


2) 장점


- 서버 장애가 발생해도 데이터 유실이 거의 없다.

- 텍스트 파일로 백업을 제공한다. 따라서 손생이 발생해도 쉽게 복구 가능하다.




3) 단점


- 모든 명령이 기록되기 때문에 파일 크기가 커지고, 데이터 로딩이 느려질 수 있으며, OS의 파일크기 제한으로 장애가 발생할 수 있다.

 * Re-write를 통해 최종 데이터만 기록할 수 있고 파일을 크기를 줄 일 수 있다.






우선순위


-  RDB 와 AOF가 둘다 존재할 경우 redis.conf 설정에 따라 읽어들이는 우선순위가 다르다.


"AppendOnly" 가  yes인 경우 AOF 파일을 읽어 온다.

"AppendOnly" 가  no인 경우  RDB 파일을 읽어 온다.




권고사항


안전한 데이터의 보존을 위해선 RDB, AOF 모두 사용할 것을 권고한다.

또한 데이터를 보관하는 저장소가 있다면 스캐쥴을 통해 주기적으로 데이터 보관 스토리지에 데이터를 저장하는 것을 권고한다.








출처:http://ossian.tistory.com/42





'Cloud & NoSQL & Middleware > Redis' 카테고리의 다른 글

Java에서 Redis 연동 테스트 (jedis)  (0) 2018.07.01
MacOS에서 Redis 설치 및 실행  (0) 2018.07.01
Redis 특징 (2) - 지원 데이터 타입  (0) 2018.06.29
Redis 특징  (2) 2018.06.29
레디스(Redis) 란?  (1) 2018.06.29

Redis는 Key & Values로 이루어 진 구조이며, values의 데이터타입은 String, Hashes, Lists, Sets, Sorted Sets 5가지가 있다.




String (문자열 데이터)


- String 값으로 저장 할 뿐 아니라, String의 Binary 데이터도 저장할 수 있다.


Key & Values



Key : user:1:data


value: {

               "id": "user00",

               "name":"kim"

           }





Hashes (해쉬 데이터)


Key & Values



Key : user:1:data


value:  필드 - 값으로 이루어진 해쉬 데이터


필드

 

 id

user00 

 name

kim 



-> 새로운 데이터를 추가할 경우 필드-값의 데이터를 추가하면 된다.

ex) age - 15

 



Lists



Key & Values



Key : user:1:data


value:  요소




요소


user00 - kim


나이가 15인 요소 추가


: user00 - kim - 15






sets


Key & Values



Key : user:1:data


value:  요소



 user00

 kim

 15

 true


요소 추가

 user00

 kim

 15

 true


 korea

 







Sorted sets




Key & Values



Key : user:1:data


value:  가중치 - 값



 가중치

 

 22

 user00

 24

 kim


 

23의 가중치와 15의 값을 갖는 데이터 요소 추가


가중치

 값

 22

 user00

 23

 15

 24

 kim

  







'Cloud & NoSQL & Middleware > Redis' 카테고리의 다른 글

Java에서 Redis 연동 테스트 (jedis)  (0) 2018.07.01
MacOS에서 Redis 설치 및 실행  (0) 2018.07.01
Redis 특징(3) - Redis Persistance  (0) 2018.06.29
Redis 특징  (2) 2018.06.29
레디스(Redis) 란?  (1) 2018.06.29

특징


1. String, lists, sets, hashes, sorted sets  과 같은 자료구조를 지원한다.

2. 디스크가 아닌 메모리 기반의 데이터 저장소이다. 

3. DataBase로도 사용할 수 있고 Cashe로도 사용할 수 있다. (NoSQL & Cashe)

   - 캐쉬로 사용할 경우 저장소 기능을 off해야 함.

4. Redis Sentinel을 통해 높은 가용성을 갖을 수 있고, Redis Cluster를 통해 Master-slave의 클러스터링을 수행할 수 있다. 

5. 성능은 환경에 따라 다르겠지만 초당 2만~10만회 수행할 수 있다.





IMDB(in-memory DB)


메모리 기반 저장소 VS 디스크 기반 저장소


속도                                     >

내구성                                 <





Redis


Remote Dictionary Server 의 약자이며  데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈소스  메모리 데이터 구조 저장소이다. (in-memory data structure sotre)


Redis는 ANSI C로 작성되었으며 Linux, * BSD, OS X와 ​​같은 대부분의 POSIX 시스템에서 외부 종속성없이 작동한다.


Redis는 페이스북, 인스타그램, 네이버 LINE 서비스, StackOverflow, 블리자드 등 대형 서비스 업체들이 사용자들의 대규모 메세지를 실시간으로 처리하기 위하여 사용하고 있다.


+ Recent posts