Memcache 사용

이 페이지에서는 Google Cloud Console을 사용하여 애플리케이션에 Memcache 서비스를 구성 및 모니터링하는 방법을 설명합니다. 또한 App Engine memcache Go API를 사용하여 캐시된 값을 설정 및 검색하는 방법을 설명합니다. Memcache에 대한 자세한 내용은 Memcache 개요를 참조하세요.

Memcache 구성

  1. Google Cloud Console에서 Memcache 페이지로 이동합니다.
    Memcache 페이지로 이동
  2. 사용하려는 Memcache 서비스 수준을 선택합니다.

    • 공유(기본값) - 가급적 최대한의 캐시 용량을 확보하여 제공합니다.
    • 전용 - 캐시 크기의 GB 시간 단위로 요금이 청구되며, 애플리케이션 전용으로 할당되는 고정 캐시 용량을 제공합니다.

    사용 가능한 서비스 등급에 대한 자세한 내용은 Memcache 개요를 참조하세요.

Go API 가져오기

memcache 패키지를 가져오려면 다음 안내를 따르세요.

import "google.golang.org/appengine/memcache"

값 캐싱 및 검색

값 캐싱

키 값이 없는 경우에만 Add()를 사용하여 키 값을 작성합니다.

item := &memcache.Item{
        Key:   "[KEY]",
        Value: []byte("[VALUE]"),
}
memcache.Add(c, item)

여기서 cappengine.Context입니다.

Memcache API 참조에서 Add 및 값 설정을 위한 기타 함수에 대해 자세히 알아보세요.

캐시된 값 조회

Get()을 사용하여 특정 키의 항목을 가져옵니다.

memcache.Get(ctx, "[KEY]")

Memcache API 참조에서 Get 및 값을 검색하는 다른 함수에 대해 자세히 알아보세요.

다음 예시에서는 Go API를 사용하여 Memcache 값을 추가, 설정, 가져오는 방법을 보여줍니다.

ctxappengine.Context라고 가정합니다.

// Create an Item
item := &memcache.Item{
	Key:   "lyric",
	Value: []byte("Oh, give me a home"),
}
// Add the item to the memcache, if the key does not already exist
if err := memcache.Add(ctx, item); err == memcache.ErrNotStored {
	log.Infof(ctx, "item with key %q already exists", item.Key)
} else if err != nil {
	log.Errorf(ctx, "error adding item: %v", err)
}

// Change the Value of the item
item.Value = []byte("Where the buffalo roam")
// Set the item, unconditionally
if err := memcache.Set(ctx, item); err != nil {
	log.Errorf(ctx, "error setting item: %v", err)
}

// Get the item from the memcache
if item, err := memcache.Get(ctx, "lyric"); err == memcache.ErrCacheMiss {
	log.Infof(ctx, "item not in the cache")
} else if err != nil {
	log.Errorf(ctx, "error getting item: %v", err)
} else {
	log.Infof(ctx, "the lyric is %q", item.Value)
}

Google Cloud Console에서 Memcache 모니터링

  1. Google Cloud Console에서 Memcache 페이지로 이동합니다.
    Memcache 페이지로 이동
  2. 다음 보고서를 확인합니다.
    • Memcache 서비스 수준: 애플리케이션이 공유 서비스 수준을 사용하고 있는지 아니면 전용 서비스 수준을 사용하고 있는지를 표시합니다. 프로젝트 소유자는 두 수준 간에 전환할 수 있습니다. 자세한 내용은 서비스 수준을 참조하세요.
    • 적중률: 캐시에서 제공된 데이터 요청의 비율과 더불어 캐시에서 제공된 데이터 요청의 총 개수를 보여줍니다.
    • 캐시의 항목 수
    • 가장 오래된 항목의 유지 기간: 가장 오래된 캐시된 항목의 유지 기간입니다. 항목의 유지 기간은 항목이 사용(읽기 또는 쓰기)될 때마다 재설정됩니다.
    • 총 캐시 크기
  3. 다음과 같은 작업을 수행할 수 있습니다.

    • 새 키: 캐시에 새 키를 추가합니다.
    • 키 찾기: 기존 키를 검색합니다.
    • 캐시 삭제: 캐시에서 모든 키-값 쌍을 삭제합니다.
  4. (전용 Memcache에만 해당) 핫 키 목록을 살펴봅니다.

    • '핫 키'는 Memcache에서 수신 QPS(초당 쿼리 수)가 100을 초과하는 키입니다.
    • 이 목록에는 최대 100개의 핫 키가 QPS가 많은 순서대로 포함됩니다.

다음 단계