Memcache verwenden
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Auf dieser Seite wird beschrieben, wie Sie den Memcache-Dienst für Ihre Anwendung mit der Google Cloud -Konsole konfigurieren und überwachen. Außerdem wird erläutert, wie Sie mit der App Engine Memcache Go API zwischengespeicherte Werte festlegen und abrufen können. Weitere Informationen zu Memcache finden Sie in der Memcache-Übersicht.
Memcache konfigurieren
- Rufen Sie die Memcache-Seite in der Google Cloud Console auf.
Zur Seite „Memcache“
Wählen Sie das gewünschte Memcache-Service-Level aus:
- Freigegeben (Standard): Kostenlos, bietet Cache-Kapazität auf Best-Effort-Basis.
- Dediziert: Kostenpflichtig, die Abrechnung erfolgt nach Cache-Größe in GB/Stunden. Eine feste Cache-Kapazität steht exklusiv für Ihre Anwendung zur Verfügung.
Weitere Informationen zu verfügbaren Dienstklassen finden Sie in der Übersicht über Memcache.
Go API importieren
So importieren Sie das memcache
-Paket:
Werte im Cache speichern und abrufen
Werte zwischenspeichern
Verwenden Sie Add()
, um einen Wert für einen Schlüssel ausschließlich dann zu schreiben, wenn für den Schlüssel noch kein Wert vorhanden ist:
item := &memcache.Item{
Key: "[KEY]",
Value: []byte("[VALUE]"),
}
memcache.Add(c, item)
Dabei ist c
ein appengine.Context
.
Weitere Informationen zu Add
und anderen Funktionen zum Festlegen von Werten finden Sie in der Referenz zur Memcache API.
Zwischengespeicherte Werte suchen
Verwenden Sie Get()
, um das Element für einen bestimmten Schlüssel abzurufen:
memcache.Get(ctx, "[KEY]")
Weitere Informationen zu Get
und anderen Funktionen zum Suchen von Werten finden Sie in der Referenz zur Memcache API.
Beispiel
Das folgende Beispiel zeigt, wie Memcache-Werte mit der Go API hinzugefügt, festgelegt und abgerufen werden können.
Es wird davon ausgegangen, dass ctx
ein appengine.Context
ist.
Memcache in der Google Cloud -Console überwachen
- Rufen Sie die Memcache-Seite in der Google Cloud Console auf.
Zur Seite „Memcache“
- Sehen Sie sich die folgenden Berichte an:
- Memcache-Service-Level: Gibt an, ob Ihre Anwendung das Service Level „Freigegeben“ oder „Dediziert“ verwendet.
Wenn Sie der Inhaber des Projekts sind, können Sie zwischen den beiden Service-Levels wechseln. Weitere Informationen über die Service Levels
- Trefferquote: Gibt den Prozentsatz der Datenanfragen an, die aus dem Cache bereitgestellt wurden, sowie die reine Anzahl der Datenanfragen, die aus dem Cache bereitgestellt wurde.
- Elemente im Cache
- Alter des ältesten Elements: Das Alter des ältesten Elements im Cache. Das Alter eines Elements wird bei jedem daran ausgeführten Lese- oder Schreibvorgang zurückgesetzt.
- Gesamtgröße des Cache
Sie können eine der folgenden Aktionen ausführen:
- Neuer Schlüssel: Fügen Sie dem Cache einen neuen Schlüssel hinzu.
- Schlüssel suchen: Rufen Sie einen vorhandenen Schlüssel ab.
- Cache leeren: Entfernen Sie alle Schlüssel/Wert-Paare aus dem Cache.
(Nur dediziertes Memcache-Service-Level) Gehen Sie die Liste der Hot-Schlüssel durch.
- „Hot-Schlüssel“ sind Schlüssel, die im Memcache mehr als 100 Abfragen pro Sekunde erhalten.
- Diese Liste enthält bis zu 100 Hot-Schlüssel, sortiert nach der höchsten Abfrage pro Sekunde.
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-09-04 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-09-04 (UTC)."],[[["\u003cp\u003eThis guide outlines how to configure and monitor the memcache service for applications using the Google Cloud console.\u003c/p\u003e\n"],["\u003cp\u003eThe document details how to utilize the App Engine memcache Go API to store and retrieve cached data through \u003ccode\u003eAdd()\u003c/code\u003e and \u003ccode\u003eGet()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eMemcache offers two service levels: Shared, which is free with best-effort capacity, and Dedicated, which offers fixed cache capacity and is billed by GB-hour.\u003c/p\u003e\n"],["\u003cp\u003eThe Google Cloud console's Memcache page provides reports on service level, hit ratio, item count, item age, total cache size, and hot keys (for dedicated memcache).\u003c/p\u003e\n"],["\u003cp\u003eThe guide provides instructions on how to import the memcache package and provides a code example of adding, setting, and getting memcache values.\u003c/p\u003e\n"]]],[],null,["# Using Memcache\n\nThis page describes how to configure and monitor the memcache service for your\napplication using the Google Cloud console. It also describes how to use the App Engine memcache Go API\nto set and retrieve cached values. To learn more about memcache,\nread the [Memcache Overview](/appengine/docs/legacy/standard/go111/memcache).\n| This API is supported for first-generation runtimes and can be used when [upgrading to corresponding second-generation runtimes](/appengine/docs/standard/\n| go\n| /services/access). If you are updating to the App Engine Go 1.12+ runtime, refer to the [migration guide](/appengine/migration-center/standard/migrate-to-second-gen/go-differences) to learn about your migration options for legacy bundled services.\n\nConfiguring memcache\n--------------------\n\n1. Go to the Memcache page in the Google Cloud console. \n [Go to the Memcache page](https://console.cloud.google.com/appengine/memcache)\n2. Select the memcache service level you want to use:\n\n - **Shared** (default) - free and provides cache capacity on a best-effort basis.\n - **Dedicated** - billed by the GB-hour of cache size and provides a fixed cache capacity assigned exclusively to your application.\n\n Learn more about available service classes in [Memcache Overview](#service_levels).\n\nImporting the Go API\n--------------------\n\nTo import the `memcache` package: \n\n import \"google.golang.org/appengine/memcache\"\n\nCaching and retrieving values\n-----------------------------\n\n### Caching a value\n\nUse [`Add()`](/appengine/docs/legacy/standard/go111/reference/latest/memcache#google_golang_org_appengine_memcache_Add) to write a value for a key if and only if no value\nalready exists for the key: \n\n item := &memcache.Item{\n Key: \"[KEY]\",\n Value: []byte(\"[VALUE]\"),\n }\n memcache.Add(c, item)\n\nwhere `c` is an `appengine.Context`.\n\nLearn more about `Add` and other functions for setting values in [Memcache API\nReference](/appengine/docs/legacy/standard/go111/memcache/reference).\n\n### Looking up cached values\n\nUse [`Get()`](/appengine/docs/legacy/standard/go111/reference/latest/memcache#google_golang_org_appengine_memcache_Item_Get) to get the item for a given key: \n\n memcache.Get(ctx, \"[KEY]\")\n\nLearn more about `Get` and other functions for looking up values in [Memcache\nAPI Reference](/appengine/docs/legacy/standard/go111/memcache/reference).\n\n### Example\n\nThe following example demonstrates how to add, set, and get Memcache values\nusing the Go API.\n\nAssume that `ctx` is an `appengine.Context`. \n\n // Create an Item\n item := &memcache.Item{\n \tKey: \"lyric\",\n \tValue: []byte(\"Oh, give me a home\"),\n }\n // Add the item to the memcache, if the key does not already exist\n if err := memcache.Add(ctx, item); err == memcache.ErrNotStored {\n \tlog.Infof(ctx, \"item with key %q already exists\", item.Key)\n } else if err != nil {\n \tlog.Errorf(ctx, \"error adding item: %v\", err)\n }\n\n // Change the Value of the item\n item.Value = []byte(\"Where the buffalo roam\")\n // Set the item, unconditionally\n if err := memcache.Set(ctx, item); err != nil {\n \tlog.Errorf(ctx, \"error setting item: %v\", err)\n }\n\n // Get the item from the memcache\n if item, err := memcache.Get(ctx, \"lyric\"); err == memcache.ErrCacheMiss {\n \tlog.Infof(ctx, \"item not in the cache\")\n } else if err != nil {\n \tlog.Errorf(ctx, \"error getting item: %v\", err)\n } else {\n \tlog.Infof(ctx, \"the lyric is %q\", item.Value)\n }\n\nMonitoring memcache in the Google Cloud console\n-----------------------------------------------\n\n1. Go to the Memcache page in the Google Cloud console. \n [Go to the Memcache page](https://console.cloud.google.com/appengine/memcache) \n2. Look at the following reports:\n - **Memcache service level** : Shows if your application is using the Shared or Dedicated service level. If you are an owner of the project, you can switch between the two. Learn more about the [service levels](./#service_levels).\n - **Hit ratio**: Shows the percentage of data requests that were served from the cache, as well as the raw number of data requests that were served from the cache.\n - **Items in the cache**.\n - **Oldest item age**: The age of the oldest cached item. Note that the age of an item is reset every time it is used, either read or written.\n - **Total cache size**.\n3. You can take any of the following actions:\n\n - **New key**: Add a new key to the cache.\n - **Find a key**: Retrieve an existing key.\n - **Flush cache**: Remove all the key-value pairs from the cache.\n4. (Dedicated memcache only) Look through the list of **Hot keys**.\n\n - \"Hot keys\" are keys that receive more than 100 queries per second (QPS) in the memcache.\n - This list includes up to 100 hot keys, sorted by highest QPS.\n\nWhat's next\n-----------\n\n- Learn more about memcache in the [Memcache Overview](/appengine/docs/legacy/standard/go111/memcache).\n- Refer to the [Memcache API Reference](/appengine/docs/legacy/standard/go111/memcache/reference)."]]