예제 #1
0
파일: cache.go 프로젝트: bmbstack/go-user
func removeFromCache(userId int64) (err error) {
	if err = mc.Client().Delete(mc.UserKey(userId)); err != nil {
		if err == memcache.ErrCacheMiss {
			err = nil
		}
		return
	}
	return
}
예제 #2
0
파일: cache.go 프로젝트: bmbstack/go-user
// 从缓存里获取 user 信息, 如果没有找到返回 ErrNotFound.
func getFromCache(userId int64, user *User) (err error) {
	item, err := mc.Client().Get(mc.UserKey(userId))
	if err != nil {
		if err == memcache.ErrCacheMiss {
			err = ErrNotFound
		}
		return
	}
	return json.Unmarshal(item.Value, user)
}
예제 #3
0
파일: cache.go 프로젝트: bmbstack/go-user
func putToCache(user *User) (err error) {
	userBytes, err := json.Marshal(user)
	if err != nil {
		return
	}
	mcItem := memcache.Item{
		Key:   mc.UserKey(user.Id),
		Value: userBytes,
	}
	return mc.Client().Set(&mcItem)
}