GAE/Go的Memcache备忘录

首先

关于Memcache,我简洁地总结了一下。

我列举了一些代表性的处理方式。

公式文件

Memcache概述
Memcache使用方法
Memcache中错误处理的重要性
Memcache-GoDoc

简便笔记

下面是省略的内容。

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

import文

此外,在错误发生时,需要参考官方文档中的变量 variables。

增添

// 追加したい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)
}

设定

// セットしたい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)
}

得到

// 取得したい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)

将字节数组转换为字符串

在将Item的Value转换为字符串时,作者使用了这个方法。

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

删除

// 削除したい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
}
广告
将在 10 秒后关闭
bannerAds