들어가며 Redis에 어떤 자료구조가 있고, 이 자료구조마다 어떤 커맨드를 수행해서 데이터를 관리하는지 기록하고자 포스팅한다. Redis 관련 도서를 찾지 못했었는데 최근, '개발자를 위한 레디스' 라는 책이 출간되어 읽고있는데 Redis 기본개념을 공부하기에 적합한것 같다. Redis (Remote dictionary server) key-value 형태의 오픈소스 기반 데이터 저장소로, 인메모리(in-memory) NoSQL 데이터베이스다. 레디스에서 모든 데이터는 key에 연결되어있기 때문에 데이터를 저장하고, 저장된 데이터를 검색할 때에는 항상 key를 식별자로 이용한다. NoSQL No SQL 혹은 Not Only SQL을 의미한다. SQL(Standard Query Language)을 사용하지..
샤드키 선정 컬렉션을 샤딩할때 데이터 분할에 사용할 1~2개의 필드를 선택하는데, 이 필드를 샤드 키라고 한다. 컬렉션을 샤딩하고나서는 샤드 키를 변경할 수 없으므로 올바르게 선택하는 것이 중요하다. 좋은 샤드키를 선정하려면 샤드 키가 애플리케이션의 요청을 분산하는 방법과 작업량을 이해해야한다. 1) 샤드를 얼마나 많이 늘릴 것인가? 샤드가 3개인 클러스터는 샤드가 천개의 클러스터보다 훨씬 유연하다. 클러스터가 점점 더 커질때, 쿼리가 모든 샤드를 방문해야하는 쿼리를 피하려면 거의 모든 쿼리가 샤드 키를 포함해야한다. 2) 읽기 혹은 쓰기 응답 대기 시간을 줄이려고 샤딩하는가? 쓰기 응답 대기 시간을 줄이는 일은 일반적으로 요청을 지리적으로 더 가까운 곳이나 더 좋은 장비로 보내는 작업과 관련 있다. 3..
샤딩을 사용하는 경우 사용 가능한 메모리를 늘릴때 사용 가능한 디스크 공간을 늘릴때 서버의 부하를 줄일때 한 개의 mongod가 다룰 수 있는 처리량보다 더 많이 데이터를 읽거나 쓸때 샤딩이 필요한 시점을 결정하는 데 모니터링이 중요하다. 어떤 항목을 프로비저닝(provisioning)할지 찾고, 복제 셋 전환 방법과 시기를 미리 계획해야 한다. 프로비저닝(provisioning) 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다. 서버 시작 클러스터를 생성하려면 먼저 필요한 프로세스를 모두 시작해야한다. mongos, 샤드 설정 구성 서버 : 클러스터 구성을 저장하는 일반 mongod 서버 클러스터 구성 : 샤..
샤딩 샤딩은 여러 장비에 걸쳐 데이터를 분할하는 과정을 뜻한다. 각 장비에 데이터의 서브셋을 넣음으로써, 더 많은 수의 덜 강력한 장비로 더 많은 데이터를 저장하고 더 많은 부하를 처리할 수 있다. 컬렉션을 분할한 조각 데이터(청그)를 저장하며, 복제 세트로 구성될 수 있다. 더 자주 접근하는 데이터를 성능이 더 좋은 하드웨어에 배치할 수 있다. 지역에 따라 데이터셋을 분할해 주로 접근하는 애플리케이션 서버와 가까운 컬렉션에서 도큐먼트의 서브셋을 찾을 수 있다. ex) 사용자가 특정 로케일(locale)을 기반으로 할때 샤딩은 개발 및 운영 측면에서 몽고DB를 구성하는 가장 어렵고 복잡한 방법이다. 모니터링할 구성 요소가 많고, 클러스터에서 데이터가 자동으로 옮겨 다니기 때문이다. 몽고DB 에서의 자동 ..
들어가기전 MongoDB Altas Free 버전을 셋팅하자. https://devfunny.tistory.com/850 [MongoDB] MongoDB Altas Free버전 Compass 사용하기 1) monggoDB 사이트 접속 https://account.mongodb.com/account/login?signedOut=true Cloud: MongoDB Cloud account.mongodb.com 2) 회원가입 후 로그인시, 접속되는 화면 3) create a database ■ [Build a Dat.. devfunny.tistory.com database 생성 _MONGOSH 에 명령어를 입력해보자. 1) database 'test' 생성 use test ▶ 아직까지는 새로고침을 해도 tes..
1) monggoDB 사이트 접속 https://account.mongodb.com/account/login?signedOut=true Cloud: MongoDB Cloud account.mongodb.com 2) 회원가입 후 로그인시, 접속되는 화면 3) create a database ■ [Build a Database] ■ [Create] ■ [Create Cluster] 3) 이동된 화면에서 유저 생성 ■ How would you like to authenticate your connection? ■ Where would you like to connect from? [Add My Current IP Address] 를 누르면 현재 자신의 IP를 자동으로 등록해준다. ■ [Finish and Cl..