Your SlideShare is downloading. ×
0
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
이것이 레디스다.
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

이것이 레디스다.

4,450

Published on

책 "이것이 레디스다"에 서술된 내용을 정리하여 간단한 슬라이드로 만들었습니다. …

책 "이것이 레디스다"에 서술된 내용을 정리하여 간단한 슬라이드로 만들었습니다.

참고하세요.

Published in: Technology
1 Comment
78 Likes
Statistics
Notes
No Downloads
Views
Total Views
4,450
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
143
Comments
1
Likes
78
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 이것이 레디스다 - 특징과 활용사례
  • 2. About Me  Kris jeong(정경석)  이것이 레디스다(2013)  레디스 2.6에 대한 활용서적  개발 경력 15년.  웹 서비스 개발.  메시징 서버 개발.  추천 서비스 개발.  다양한 NoSQL 활용 연구중 http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8968480591
  • 3. 레디스란?  레디스는 In-Memory Database  다양한 데이터 타입 지원  영구 저장소 지원  키-값 모델 NoSQL
  • 4. IMDB(In-Memory DB) 디스크 기반 저장소 메모리 기반 저장소 Query Engine Query Engine 속도 Storage Manager Memory(Cache) Disk Memory 데이터 내구성 Disk is optional Disk
  • 5. 레디스는 캐시 서버인가? 레디스는 캐시 서버가 아닌 저장소 하지만 캐시 서버로 활용 가능 저장소 기능을 Off하면 됨.
  • 6. 설치 가능한 운영체제 https://github.com/MSOpenTech/redis
  • 7. 설치와 테스트 $ wget http://download.redis.io/redis-stable.tar.gz $ tar xvf redis-stable.tar.gz $ cd redis-stable $ make … … done. $ make test ※ CentOS 6.4 64bit
  • 8. 특징
  • 9. 무지 빠르다 (TPS) $ ./src/redis-benchmark --csv -d 1024 "PING_INLINE","34602.07" "PING_BULK","35971.22" "SET","35211.27" "GET","31347.96" … "LPUSH (needed to benchmark LRANGE)","32467.53" "LRANGE_100 (first 100 elements)","4714.76" "LRANGE_300 (first 300 elements)","1605.91" "LRANGE_500 (first 450 elements)","1030.93" "LRANGE_600 (first 600 elements)","735.13" "MSET (10 keys)","22471.91" ※ CentOS 6.4 64bit, Core i5 3337U@1.8Gz
  • 10. 특징 - expire  지정된 시간 후에 만료  expire user:212:cart 259200 초 단위 만료 Countdown It will be expired 3 days later.  만료 시간 지정  expireat user:212:item:sward 1388534400 It will be expired 2014/01/01 유닉스 타임스탬프
  • 11. 지원 데이터 타입  문자열 데이터 키 값 { "product": { "id": "2951", "name": "testing 01", "options": { "color": "red" }, "quantity": 4 } user:1:cart_info } ※ Up to 512MB
  • 12. 지원 데이터 타입 (cont.)  해시 데이터 키 필드 값 name min damage 13 max damage 20 durability 32/50 price item:1:info bastard sword 3500 새로운 필드와 값 추가 durability 31/50
  • 13. 지원 데이터 타입 (cont.)  해시 데이터 키 필드 값 name min damage item:1:info bastard sword 13 max damage 20 durability 31/50 32/50 price 3500
  • 14. 지원 데이터 타입 (cont.)  리스트 데이터 키 user:1:messag e 요소 hi~ how r you. bye. 새로운 요소 추가
  • 15. 지원 데이터 타입 (cont.)  리스트 데이터 키 user:1:messag e 요소 hi~ how r you. bye.
  • 16. 지원 데이터 타입 (cont.)  셋 데이터 kris mike frank user:1:friend martin tom 새로운 요소 추가 chris
  • 17. 지원 데이터 타입 (cont.)  셋 데이터 kris mike user:1:friend frank martin tom chris
  • 18. 지원 데이터 타입 (cont.)  정렬된 셋 데이터 가중치 키 값 1 91 mike 200 frank 250 martin 251 user:ranking kris tom 새로운 가중치와 값 추가 220 chris
  • 19. 지원 데이터 타입 (cont.)  정렬된 셋 데이터 키 가중치 값 1 91 user:ranking kris mike 200 frank 220 250 chris martin 250 251 martin tom 251 tom
  • 20. 특징 – RDB(Snapshot) Redis instance Redis data Data dump to disk Dump file (Redis.rdb) Snapshot이벤트 발생 레디스 snapshot 사용시 고려사항  레디스에 저장되는 데이터 크기와 물리 메모리의 비율 고려  리눅스 운영체제의 vm.overcommit_memory=1 설정 확인  Swap/snapshot에 대한 DISK I/O가 많아질 수 있음.
  • 21. 특징 – AOF(Append Only File) Redis instance Command logging Redis data appendonly.aof 데이터 저장/수정 명령 Redis client 레디스 AOF에 대한 고려사항  적당한 디스크 용량과 IO속도를 보장해야 함.  레디스를 재시작할때 RDB보다 느리게 시작됨.
  • 22. 복제 – Single slave Redis cluster Master Node Slave Node Replication key1 test value set key1 ‘test value’ key1 set key1 ‘test value’ Redis client test value
  • 23. 복제 – Multiple slave Redis cluster Slave Node 1 Replication Master Node Slave Node 2 Slave Node 3 읽기 쓰기 Redis client
  • 24. 복제 – Multiple slave (cont.) Redis cluster 1st Replication Master Node Slave Node 1 2nd Replication Slave Node 2 Slave Node 3 쓰기 Redis client Slave Node 4 읽기 Redis client
  • 25. 샤딩 – 범위 지정 ● 데이터 범위를 기준으로 샤딩 User Key 1 ~ 100 User Key 1~50 User Key 51~100 Shard 1 Shard 2 Master Node Master Node Slave Node Slave Node Slave Node Slave Node
  • 26. 샤딩 - 수직 ● 데이터 스키마를 기준으로 샤딩 User info Content Shard 1 Shard 2 Master Node Master Node Slave Node Slave Node Slave Node Slave Node
  • 27. 샤딩 - 해싱 ● 키의 해시값을 기준으로 샤딩 User Key 1 ~ 100 Key % Number of Shard(Key % 2) Shard 1 Shard 2 Master Node Master Node Slave Node Slave Node Slave Node Slave Node
  • 28. 샤딩 – 레디스 클라이언트 사용 Shard 1 Shard N … 읽기/쓰기 Sharding Calc 읽기/쓰기 Redis client 레디스 샤딩 사용시 고려사항  레디스는 서버측 샤딩을 지원하지 않으므로 클라이언트가 구현.  대부분의 레디스 클라이언트는 클라이언트측 샤딩을 지원.  장비 증설/제거시 재 샤딩을 위한 전략 수립 필요
  • 29. 활용 사례 10억 사용자에 대한 실시간 PV/UV  일간 로그인 사용자 수 계산  주간 로그인 사용자 수 계산  일주일간 한번이라도 로그인한 사용자 수 계산 실시간 인기 게시물 목록 구하기.  클릭 수 기준 인기 게시물 목록  댓글 수 기준 인기 게시물 목록 실시간 게임 랭킹  점수 기준 Top 10 랭커 목록  최근 접속 사용자 목록
  • 30. 데모

×