Menggunakan Memcache

Halaman ini menjelaskan cara mengonfigurasi dan memantau layanan memcache untuk aplikasi Anda menggunakan konsol Google Cloud. Panduan ini juga menjelaskan cara menggunakan memcache Go API App Engine untuk menetapkan dan mengambil nilai yang disimpan dalam cache. Untuk mempelajari lebih lanjut tentang memcache, baca Ringkasan Memcache.

Mengonfigurasi memcache

  1. Buka halaman Memcache di konsol Google Cloud.
    Buka halaman Memcache
  2. Pilih tingkat layanan memcache yang ingin Anda gunakan:

    • Bersama (default) - gratis dan menyediakan kapasitas cache berdasarkan upaya terbaik.
    • Khusus - ditagih berdasarkan GB-jam ukuran cache dan menyediakan kapasitas cache tetap yang ditetapkan secara eksklusif untuk aplikasi Anda.

    Pelajari lebih lanjut tentang class layanan yang tersedia di Ringkasan Memcache.

Mengimpor Go API

Untuk mengimpor paket memcache:

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

Menyimpan nilai ke cache dan mengambil nilai

Menyimpan nilai ke cache

Gunakan Add() untuk menulis nilai kunci jika dan hanya jika belum ada nilai untuk kunci tersebut:

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

dengan c adalah appengine.Context.

Pelajari Add dan fungsi lainnya untuk menetapkan nilai lebih lanjut di Referensi Memcache API.

Mencari nilai yang disimpan di cache

Gunakan Get() untuk mendapatkan item untuk kunci tertentu:

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

Pelajari Get dan fungsi lainnya lebih lanjut untuk mencari nilai di Referensi Memcache API.

Contoh

Contoh berikut menunjukkan cara menambahkan, menetapkan, dan mendapatkan nilai Memcache menggunakan Go API.

Asumsikan ctx adalah appengine.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)
}

Memantau memcache di konsol Google Cloud

  1. Buka halaman Memcache di konsol Google Cloud.
    Buka halaman Memcache
  2. Lihat laporan berikut:
    • Tingkat layanan Memcache: Menunjukkan apakah aplikasi Anda menggunakan tingkat layanan Bersama atau Khusus. Jika Anda adalah pemilik project, Anda dapat beralih di antara keduanya. Pelajari tingkat layanan lebih lanjut.
    • Rasio hit: Menampilkan persentase permintaan data yang disajikan dari cache, serta jumlah mentah permintaan data yang disajikan dari cache.
    • Item dalam cache.
    • Usia item terlama: Usia item terlama yang disimpan di cache. Perhatikan bahwa usia item akan di-reset setiap kali item digunakan, baik dibaca maupun ditulis.
    • Total ukuran cache.
  3. Anda dapat melakukan salah satu tindakan berikut:

    • Kunci baru: Menambahkan kunci baru ke cache.
    • Temukan kunci: Mengambil kunci yang ada.
    • Kosongkan cache: Menghapus semua key-value pair dari cache.
  4. (Hanya untuk memcache khusus) Lihat daftar Hotkey.

    • "Hotkey" adalah kunci yang menerima lebih dari 100 kueri per detik (QPS) di memcache.
    • Daftar ini berisi maksimal 100 hotkey, yang diurutkan berdasarkan QPS tertinggi.

Langkah selanjutnya