Memcache의 소개 및 사용 시나리오

1. memcache에 무엇입니까

오픈 소스, 고성능, 분산 메모리 오브젝트 캐싱 시스템이다 memcached를 캐시 할 시나리오의 다양한 요구에 적용 할 수있는, 그것의 주요 목적은 데이터베이스에 대한 액세스를 줄여 웹 애플리케이션을 가속화하는 것입니다. 대부분의 웹 애플리케이션은 RDBMS에 데이터를 저장합니다, 응용 프로그램 서버와 데이터는 브라우저의 디스플레이에서 읽습니다. 하지만 데이터의 양이 증가, 중앙 집중식 액세스, 무거운 부담 DB는 사이트의 악화에 대응하여 데이터베이스 지연에 큰 영향을 보여있을 것입니다.

2. 왜 memcache를 사용합니까?

확장 성을 향상, 동적 웹 애플리케이션의 속도를 향상, 데이터베이스 액세스의 수를 줄일 수, 데이터베이스 쿼리 캐시의 결과로, 일반 목적에서 Memcache. 이것은 데이터베이스 통화 저장 메모리에 직접 데이터 메모리의 "키"를 기반으로, 이러한 문자열로 API 호출 또는 페이지 기준 결과, 개체.

3. memcache에 클라이언트

Memcache는이 프로젝트의 이름이지만, 프로젝트 이름, Memcached가 클라이언트 자신의 클라이언트 연결 프로그램이 파일 이름이 메인 프로그램 인이며, 서버 측의 주요 프로그램 파일 이름을 memcached를한다

: memcached를 클라이언트 삼가지 있습니다
Memcached가 클라이언트는 자바에 대한
Spymemcached,
xmemcached

이 세 가지 클라이언트 논쟁이 있었다 :
; SpyMemcached보다 안정적 자바에 대한 Memcached가 클라이언트, 이전보다 널리
자바 Memcached가 용 클라이언트보다 더 효율적 Spymemcached;
SpyMemcache 동시 효과보다 더 xmemcached.

4.memcached 디자인 아이디어

4.1, 간단한 키 / 값 저장 : 서버가 한 데이터를 직렬화 할 수있는 데이터 자체의 의미와 구조에 대해 상관하지 않는다. 스토어 항목은 4 개의 "키, 유효 기간, 옵션 플래그 데이터를"으로 구성되어
, 기능이 구현되는 4.2 서버에서 클라이언트 반반에 따라 달라집니다 : 클라이언트는 서버, 스토리지 서버에 항목을 보내는 책임이 있습니다 데이터를 얻기 위해 적절한 조치를 사용하여 서버에 연결할 수 있으며, 상기 서버는, 수신 된 데이터를 저장을 담당하고, 타임 아웃에 대한 책임은 데이터 아이템 만료
, 전율 : 4.3, O (1) O의 효율 (1) 표준 O (1) 10,000의 특성과 관련 쿼리 연결 속도가 동일하도록. (memcached를 (을)를 달성하기 위해 구현 libevent에 따라 (1))
4.4, 확장 된 데이터는 최대 깨끗한 : 그것은 사전 예약 장기 연체 정리 된 데이터를 누를 때 기본적으로 Memcached가가 LRU 캐시입니다, 사실, memcached를 어떤을하지만, 삭제되지 않습니다 자신의 만료 후 데이터를 캐시,하지만 더 이상 볼 고객, 또한, 보도 마감 정말 캐시를 지우 않습니다 memcached를하지만, 명령이 도착받을 경우에만이 오래를 확인;

5.memcached 및 데이터 액세스 프로토콜 :

소위 프로토콜은 구문 규칙은 공통 데이터 액세스 명령 및 매개 변수를 다음과 같이 구성되어, 그 동작 (데이터 액세스)로 이해 될 수있다 :

5.1 설정 : 값 (데이터 값) 지정된 키 (열쇠)에 저장된다.
그림 삽입 설명 여기
5.2 얻을 다음 memcached를 추출 값에 대응 키를 나타내는
그림 삽입 설명 여기
기존의 키 (key)를 삭제 : 5.3, 삭제합니다.
그림 삽입 설명 여기
5.4, 모든 통계 명령 :

1 개 스토리지 클래스 명령 : SET, 추가의 교체,은 추가, preprepend
2, 통계 클래스 명령 : 통계, 통계 항목, 기둥 통계, 통계 크기
클래스 명령을 정리, 3 : 삭제, fush_all

memcached를 두 가지 장점을 가지고
읽기 및 쓰기 성능이 더 높은 동시성, 결국, memcached를 빠르게 읽을 수있는 하드 디스크에 비해 읽기 및 쓰기, 메모리에 데이터를 기록하는 파일 캐시의 일부보다 빠른 응답을, 다른 memcached를 여러 서버가있는 구성 요소를 지원하는 클러스터 캐시, 자동로드 밸런싱을 종료 할 수있다. 자세한 내용은 여기를 각 서버에서 캐시에 사용되어야한다 memcached를 서버가 서로 다른 정보를 기록 할 때, 그래서, 고립 된 캐시 데이터 분리, 크게, 사용 가능한 메모리를 증가하는 서버 메모리의 낭비를 피하는를 넣어 당신은 쓰기 캐시의 키 캐시 서버로 ID를 사용할 수 있습니다.
또한 두 가지 주요 단점 갖는다 memcached를
일반 컴퓨터에 memcached 캐싱 도달 2G는 기본적 한계를 버퍼에 한계가 도달 그것은 컴퓨터 서비스의 안정성에 영향을 미칠 것이며, 그 상황에 memcached 캐싱 데이터 손실이 발생한다. 또 다른 서버가 등등 정전, 다운 타임과 같은 비정상적인 상황 일 때 캐시 데이터가 메모리에 존재하기 때문에, 캐시 된 데이터가 손실 될 것입니다. 여기를 주목해야한다 memcached를 데이터 등의 정보 소스 데이터의 유일한 소스는하지만 필요가 프로그램을 만들 때 다운 타임없이 캐시 된 정보를 memcached를 할 때, 그는 단지 빠른 메모리 액세스로 데이터베이스로 사용할 수 없습니다 수 없습니다 다른 곳에서 같은 데이터베이스에서 데이터의 전송. 가동 중단 상황이 일반적으로 발생하지 않는 반면 지금은 일반적으로 memcached를 서버에 대한, 클라우드 데이터베이스에 사용되는 데이터베이스는 독립적이어야한다.

더 일반적으로 이러한 장소에서 사용 6.memcached :

등, 사이트 방문 일반적으로 더 큰 경우와 입찰 사이트, 부동산 사이트, 같은 빅 데이터에 대한 일반 정보 사이트 : 6.1 캐시는 동적 페이지의 많은 양에 작지만 자주 액세스하는 데이터 나 파일의 수 및 액세스 될 것입니다 등의 웹 사이트 기사, 이들은 기본적으로 모양, 실질적으로 수정되지 않습니다, 당신이 직접 파일 캐싱을 사용할 수 memcached를 적용되지 않습니다. 그러나 이러한 사이트가 가정 방문을 더 자주 일반적으로, 그것은 memcached를 할 수있는 사이트로 분류 캐시 정보에 가능하며, 홈 페이지에서 동일한 추천 정보도 따라서 크게 서버에 압력을 감소, memcached를에 캐시 할 수 있습니다 .
6.2 좋은 결과가 계산을 캐시 할 수 있습니다 : 같은 입찰 웹 사이트의 마지막 예에 대해, 특정 기밀 정보에 따라이 시간에, 때마다이 경우, 조각의 총 수에 대해 얻을 수있는 모든 필요의 목록에 액세스, 몇 백만에 도달 할 수 있습니다 들어 데이터베이스 엔진이 이노입니다, 다음, 다음 날 시간의 총 수보다 2 초 이상이, 대기 시간을 고객에게 2 초 의심 할 여지없이 비교적 긴, 입찰 사이트에 대한 일반적인 정보는 첫날에 기록되어있다 할 수있다 얻을 memcached를에서 기존 데이터 이번에 처음 평균 많이 쓰고, 그 전에, 우리는 캐시의 총 수를 넣을 수 있습니다 릴리스 또는 쓰기 저녁에, 그리고 특히 높은 실시간 요구 사항, 또는 memcached를에서 0의 총 수에 대한 매일 업데이트, 따라서 크게 액세스 속도를 가속화.
6.3, 세션 데이터 (임시 데이터) 캐시 할 수 있습니다 : 예를 들어, 소셜 네트워킹 사이트, 온라인 시간이 일반 사용자보다는 이상을, 각 시간 데이터에서 읽어 데이터베이스에 데이터가있는 경우이 시간, 압력은 의심 할 여지없이 매우 큰 데이터베이스입니다 세션을 고려, 세션 캐시가 업데이트해야합니다 : 여기에 있다는 것입니다, 따라서 여기서주의 할 데이터베이스의 쓰기 작업을 감소 memcached를 서로 다른에 사용자에 memcached를 클러스터, 세션 ID 또는 다른 데이터를 사용할 수있다 유효 기간, 및 사용자의 활동 상태는, 상기 세션의 유효 기간을 연장.
, 부동산 사이트를 예를 들면, 지구 명부로,도 크게 서버를 줄일 수있는, 특히 고온, SQL 문이 검색의 결과가 세션에 쓸 수의보기를 검색 : 6.4, 당신은 정보 섹시한 학위를 캐시 할 수 있습니다 압력뿐만 아니라 고객 경험도 향상됩니다.

게시 된 원본 기사 · 원의 칭찬 0 · 조회수 48

추천

출처blog.csdn.net/RainXu0429/article/details/104689033