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
}