5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GAE/GoのMemcacheチートシート

Last updated at Posted at 2018-02-19

はじめに

Memcacheについて、簡潔にまとめてみました。

ひとまず代表的な処理のみ挙げてます。

公式ドキュメント

Memcacheの概要
Memcacheの使い方
Memcacheにおけるエラーハンドリングの重要性
memcache -GoDoc

チートシート

以下は省略してます。

  • コンテキストの生成 ctx := appengine.NewContext(req)
  • import文

なお、エラー時の変数については公式ドキュメント variablesを要参照

Add

// 追加したいItemを生成
item := &memcache.Item {
    Key: "飯島",
    Value: "院生",
    Expiration: time.Duration(1440) * time.Second //期限を1440秒に指定
}

err := memcache.Add(ctx, item)
// keyに該当するitemが既に存在している場合
if err == memcache.ErrNotStored {
    log.Infof(ctx, "item with key %q already exists", item.Key)
    return
}
// それ以外のエラーが起きた場合
if err != nil {
    log.Errorf(ctx, "error adding item: %v", err)
}

Set

// セットしたいItemを生成
item := &memcache.Item {
    Key: "飯島",
    Value: "院生",
    Expiration: time.Duration(1440) * time.Second //期限を1440秒に指定
}

err := memcache.Set(ctx, item)
if err != nil {
    log.Errorf(ctx, "error setting item: %v", err)
}

Get

// 取得したいItemのkey
key := "周平"

item, err := memcache.Get(ctx, key)
// keyに該当するItemが存在しない場合
if err == memcache.ErrCacheMiss {
    log.Infof(ctx, "item not in the cache")
    return
}
// それ以外のエラーが起きた場合
if err != nil {
    log.Errorf(ctx, "error getting item: %v", err)
    return
} 

// 取得したItemの値をstringに変換
v := bytesToString(item.Value)

byte配列からstringへの変換

ItemのValueをstringに変換する際に、筆者はこれを使いました

func bytesToString(data []byte) string {
	return string(data[:])
}

Delete

// 削除したいItemのkey
key := "飯島"

err := memcache.Delete(ctx, key)
// keyに該当するItemが存在しない場合
if err == memcache.ErrCacheMiss {
    log.Infof(ctx, "item not in the cache")
    return
}
// それ以外のエラーが起きた場合
if err != nil {
    log.Errorf(ctx, "error getting item: %v", err)
    return
}
5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?