Memcached 실시간 트랜잭션 및 분석 처리 사용

Memcached란 무엇입니까?

memcached - a distributed memory object caching system
https://memcached.org/

외부 데이터 소스(예: 데이터베이스나 API)의 읽기 횟수를 줄이기 위해 데이터와 객체들을 RAM에 캐시 처리함으로써 동적 데이터베이스 드리븐 웹사이트의 속도를 높이기 위해 종종 사용된다.

Memcached는 어떻게 작동합니까?

데이터를 디스크 또는 SSD에 저장하는 데이터베이스와는 달리 Memcached는 데이터를 메모리에 유지합니다. 디스크에 액세스할 필요가 없으므로 Memcached와 같은 인 메모리 키 값 스토어는 검색 시간 지연을 방지하고 수 마이크로초 만에 데이터에 액세스할 수 있습니다. 또한, Memcached는 분산형입니다. 즉, 새로운 노드를 추가하여 손쉽게 확장할 수 있습니다. Memcached가 다중 스레드이므로 컴퓨팅 파워를 손쉽게 확장할 수 있습니다. 속도 및 확장성, 단순한 설계, 효율적인 메모리 관리 및 인기 있는 언어 대부분에 대한 API 지원의 결과로 Memcached는 고성능의 대규모 캐싱 사용 사례에 널리 사용됩니다.

보안과 확장성을 갖춘 완전관리형 Memcached

Memcached의 이점

1밀리초 미만의 응답 시간

Memcached는 서버의 주 메모리에 모든 데이터를 유지합니다. 데이터 대부분을 디스크 또는 SSD에 저장하는 PostgreSQL, Cassandra 및 MongoDB와 같은 데이터베이스와는 달리 인 메모리 데이터 스토어는 반복해서 디스크를 왕복할 필요가 없습니다. 따라서 더 많은 작업을 처리하고 더 빠른 응답 시간을 지원할 수 있습니다. 그 결과 1밀리초 미만의 평균 읽기 및 쓰기 시간과 초당 수백만 개의 연산 지원이라는 빠른 성능을 자랑합니다.

단순성 및 사용 편의성

Memcached는 간단하고 일반적이 되도록 설계되었으므로 애플리케이션 개발에 사용하기에 쉬우면서 강력합니다. Memcached 개발자는 다수의 오픈 소스 클라이언트를 사용할 수 있습니다. 지원되는 언어로는 Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, Go 등이 있습니다.

확장성

Memcached의 분산 및 다중 스레드 아키텍처를 사용하면 손쉽게 확장할 수 있습니다. 여러 노드 간에 데이터를 나눌 수 있으므로, 클러스터에 새로운 노드를 추가하여 용량을 확장할 수 있습니다. 또한, Memcached는 다중 스레드이므로 주어진 노드에서 여러 개의 코어를 사용할 수 있습니다. 따라서 컴퓨팅 파워를 간단하게 확장할 수 있습니다. Memcached에서는 빠르고 일관된 성능을 제공하도록 설계된 고도로 확장 가능한 분산 캐싱 솔루션을 구축할 수 있습니다.

커뮤니티

Memcached는 활발한 커뮤니티에서 지원하는 성숙한 오픈 소스 프로젝트입니다. WordPress 및 Django와 같은 애플리케이션은 Memcached를 사용한 성능 개선을 지원합니다. Memcached가 개방형 표준을 기반으로 하고 오픈 데이터 형식을 지원하며 다양한 클라이언트 세트를 제공하므로 공급업체 또는 기술에 대한 종속이 없습니다.

캐싱

Memcached는 고성능 인 메모리 캐시를 구현하여 데이터 액세스 지연 시간을 줄이고 처리량을 늘리며 백엔드 시스템의 로드를 완화하는 데 매우 적합합니다. Memcached는 1밀리초 미만으로 캐시된 항목을 처리할 수 있으며, 더 많은 로드를 위해 쉽고 비용 효율적으로 확장할 수 있도록 지원합니다. Memcached는 데이터베이스 쿼리 결과 캐싱, 세션 캐싱, 웹 페이지 캐싱, API 캐싱, 이미지, 파일 및 메타데이터와 같은 객체 캐싱에 널리 사용됩니다.

세션 스토어

인 메모리 데이터 스토어로서 Memcached는 지속성이 중요하지 않은 경우 인터넷 규모 애플리케이션을 위한 세션 데이터를 저장하고 관리하는 애플리케이션 개발자들 사이에서 널리 사용됩니다. Memcached는 사용자 프로필, 자격 증명 및 세션 상태와 같은 세션 데이터를 관리하는 데 필요한 1밀리초 미만의 지연 시간과 규모를 제공하도록 설계되었습니다.

관련자료출처 : aws cloud
https://memcached.org/
github : https://github.com/memcached/memcached

예제

JAVA

import net.spy.memcached.MemcachedClient;  
public class MemcachedJava {  
  public static void main(String[] args) {  
      
    // Connecting to Memcached server on localhost  
    MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));  
    System.out.println("Connection to server sucessfully");  
      
    //not set data into memcached server  
    System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").done);  
      
    //Get value from cache  
    System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));  
  }  
}  
Connection to server successfully
set status:true
Get from Cache:memcached.

Node.js

//Opening a Connection to Memcached Using MemJS
var memjs = require('memjs');

var mc = memjs.Client.create('hostname:port', {
  username: 'username',
  password: 'password'
});    

//Reading and Writing Data with MemJS...
mc.set('foo', 'bar');
mc.get('foo', function (err, value, key) {
    if (value != null) {
        console.log(value.toString());
    }
});
$ node example_memjs.js
bar

덧글 삭제

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다