memcached란?
30 Oct 2018 | memcached NoSQL CouchDB정리중..
내가 사용한 쿼리가 mem
- memcached ??
내가 궁금한 것,
- 그래서 왜 cpu메모리에서 memcache를 사용하고 있는지
- 왜 작업관리자로 cpu 메모리를 체크해봐야지??
- 그래서 사용자피씨에서는 애를 어떻게 사용하는 거지??
- memcached! 애를 왜 쓰는 걸까??
Cache 란, 왜 쓰는지?
- memcached를 이해하기 앞서 먼저 cache에 대한 개념을 알아햐 했다..
- cache는 빠른 속도를 위해 사용한다.
CouchDB
- 아파치 오픈 소스 프로젝트
- Non-Relational Database (NoSQL)
- document-oriented 기반 like mongoDB, Riak (JSON document를 직접 저장할 수 있는 Document DB 형태)
- apache 2.0 license이고, couchdb설치시 웹서버가 같이 설치되어 client와 HTTP로 통신하고 data(document)를 JSON으로 주고 받는다.
memcached
- 메모리 캐쉬 솔루션
- Memcached 는 범용 분산 캐시 시스템이다.
- 외부 데이터 소스의 읽기 횟수를 줄이기 위해 데이터와 객체들을 RAM에 캐시 처리함으로써 동적 데이터베이스 드리븐 웹사이트의 속도를 높이기 위해 종종 사용된다. –> 이래서 cpu를 확인했구나?!!
- Memcached는 분산 메모리 캐시 시스템입니다.
- RAM에 데이터 및 오브젝트를 캐시함으로써 데이터베이스 및 API에서 읽어와야 하는 횟수를 줄일 수 있습니다.
-
*memcached 운용시 시스템의 메모리 상황를 모니터링 해, 스왑과 락이 일어나지 않도록 해야한다.
- http://linuxism.tistory.com/984
- https://charsyam.wordpress.com/2016/07/27/%EC%9E%85-%EA%B0%9C%EB%B0%9C-%EC%99%9C-cache%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80/
CouchBase란?
- CouchBase는 memcached와 CouchDB를 합쳐놓은 제품으로, 앞단에 캐쉬가 있어서 성능이 매우 빠르다
Indexing, Grouping ,Ordering,Join 가능
- 아주 중요한 특징중의 하나인데, 대부분의 NoSQL은 Key/Value Store 형식으로, 개별 필드에 대한 Indexing이나, 필드별로 group by 를 해서 sum,count등을 하는 기능이나, 특정 필드별로 Sorting이 불가능하다.
- 카우치베이스의 경우 이러한 성능상 문제를 해결 하면서도 RDBMS들이 지원하는 index, grouping, ordering 기능을 지원할 수 있다.
확장이 쉬움
- 보통 분산 구조의 NoSQL의 경우, 노드를 확장하거나 특정 노드가 장애가 났을때의 처리가 어려운데, 카우치베이스는 장애가 손쉽게 장애 처리를 하고,새로운 노드를 추가할때 도 매우 쉽게 노드 추가가 가능하다.
- 이러한 장점은 운영 관점에서 큰 이점이 된다.
Built in 관리 도구 제공
- 카우치베이스는 웹 기반의 GUI 관리 도구를 기본으로 제공.
- 많은 NoSQL들이 별도의 관리, 모니터링 도구를 지원하지 않는데 반하여, 기본적으로 강력한 관리 도구를 제공하는 것은 큰 장점.
Memcached 프로토콜 지원
- 캐쉬 솔루션으로 유명한 Memcached 프로토콜을 그대로 지원하기 때문에, 기존의 Memcached 클라이언트를 그대로 사용할 수 있고, 기존에 사용하던 Memcached 인프라를 그대로 대체 할 수 있다.
스키마가 없는 유연한 저장 구조 (Scheme-less)
- 나는 스키마라는 말을 계속 썼는데.. 잘못되었구나 ㅜㅜ 아직도 RDBMS와 헤깔린다.
- 스키마가 없는 구조는 카우치베이스뿐만 아니라 대부분의 NoSQL이 갖는 공통적인 특성.
- 스키마가 없기 때문에 하나의 테이블에 컬럼 형식이 다른 데이타를 넣을 수 있다.
- 즉 하나의 데이타 버켓에 데이타 구조가 다른 JSON 문서들을 넣을 수 있다는 이야기.
- 데이타 타입이 다름에도 불구하고, 공통되는 필드에 대해서, Indexing, grouping 등을 제공할 수 있다.
- JSON 도큐먼트에, county 라는 앨리먼트가 있는 도큐먼트들을 대상으로 grouping등을 할 수 있다는 이야기이다.
다양한 클라이언트 플랫폼 지원
- 자바,닷넷,PHP,루비,C,파이썬,node.js 등 다양한 클라이언트 라이브러리를 제공한다.
출처
- (카우치베이스(Couchbase) 서버-#1 소개 및 설치하기)[http://bcho.tistory.com/924]
- [http://flyburi.com/473]
Comments