-
Redis실무에서 배운 내용 정리 2019. 8. 9. 23:54
Redis
- in memory 데이터 저장소 (key-value형태의 데이터)
- 싱글 스레드 (1번에 1개의 명령어만 처리) => 여러 문제의 원인이 됨
https://www.zdnet.co.kr/view/?no=20131119174125
- 초당 10만~15만 get/set 가능
Redis의 자료구조 (Data Structure)
- key-value 형태
- Bucket을 이용한 Chanined Linked List 구조로 되어 있음
- 같은 Bucket에 들어가는 key들은 링크드 리스트로 연결됨
why 사용?
- 여러 데이터 타입 지원 (value 값으로 String, List, Set, Sorted Set, Hash 타입 지원)
– List 형태의 데이터 입력과 삭제가 MySQL에 비하여 10배 정도 빠름 (특화됨)
- 여러 프로세스에서 동시에 같은 key를 수정하려고 할 때 Atomic처리가 되어있어서 데이터 정합성 보장 (Atomic 처리 함수 제공)
- 영구적으로 데이터 보존 가능
ㄴ 명령어로 명시적으로 삭제시키거나 expires를 설정하지 않으면 데이터 삭제하지 않음
ㄴ 스냅샷 기능을 제공해서(메모리의 내용을 *. rdb 파일로 저장) 특정 시점으로 복구 가능
- 여러 대의 서버 구성이 가능 (master-slave 모델)
Redis Memcahced 처리 속도가 빠름
- 데이터가 메모리+Disk에 저장
- 속도는 Memcached와 큰 차이가 없음처리 속도가 빠름
- 데이터가 메모리에만 저장
- 속도가 느린 Disk를 거치지 않음데이터가 메모리+Disk에 저장
- 레디스가 죽거나 장비가 Shutdown되더라도 데이터 복구 가능데이터가 메모리에만 저장
- 프로세스가 죽거나 장비가 Shutdown됐을 때 데이터 사라짐만료일을 지정해서 만료가 되면 자동으로 데이터가 사라짐
- 해당 기능 지원
만료일을 지정해서 만료가 되면 자동으로 데이터가 사라짐
저장소 메모리 재사용하지 않음
- 명시적으로만 데이터를 제거할 수 있음
저장소 메모리 재사용
- 데이터가 만료되지 않았더라도 데이터를 넣을 메모리가 없으면 LRU(Least recently used) 알고리즘에 의해 데이터를 없앰
String, Set, Sorted Set, Hash, List 등 여러 데이터 타입 지원
String만 지원
용어
AOF (Append Only File) 파일
명령이 발생할 때마다 그것이 기록되는 파일 (모두 기록함)
Copy-On-Write (COW)
평소에 프로세스들이 Resource를 공유하고 있다가 어떤 프로세스가 Resource를 수정하려고 하면 그때 Resource를 Copy 함
RSS (Resident Set Size)
실제 메모리 사용량 (kb단위)
참고
https://genesis8.tistory.com/189
redis란?
출처 : http://www.sqler.com/266239 http://blog.likead.co.kr/?p=72 redis란 무엇일까? redis란 No SQL의 일종이라고 한다. NO SQL? 위키 : NoSQL 데이터베이스는 단순 검색 및 추가 작업을 위한 매우 최적화된..
genesis8.tistory.com
'실무에서 배운 내용 정리' 카테고리의 다른 글
SpringBootServletInitializer 란 무엇이고 왜 상속받고 있는가? (0) 2020.08.14 Guava Cache 란 [1편] (0) 2018.12.24 상속보다 구성을 이용한 재사용 [1편] (3) 2018.12.21 실행 계획 (0) 2018.12.19 Clustered Index & Non-Clustered Index 차이 (0) 2018.12.17