// Code generated by kratos tool genmc. DO NOT EDIT. /* Package testdata is a generated mc cache package. It is generated from: type _mc interface { // mc: -key=demoKey CacheDemos(c context.Context, keys []int64) (map[int64]*Demo, error) // mc: -key=demoKey CacheDemo(c context.Context, key int64) (*Demo, error) // mc: -key=keyMid CacheDemo1(c context.Context, key int64, mid int64) (*Demo, error) // mc: -key=noneKey CacheNone(c context.Context) (*Demo, error) // mc: -key=demoKey CacheString(c context.Context, key int64) (string, error) // mc: -key=demoKey -expire=d.demoExpire -encode=json AddCacheDemos(c context.Context, values map[int64]*Demo) error // mc: -key=demo2Key -expire=d.demoExpire -encode=json AddCacheDemos2(c context.Context, values map[int64]*Demo, tp int64) error // 这里也支持自定义注释 会替换默认的注释 // mc: -key=demoKey -expire=d.demoExpire -encode=json|gzip AddCacheDemo(c context.Context, key int64, value *Demo) error // mc: -key=keyMid -expire=d.demoExpire -encode=gob AddCacheDemo1(c context.Context, key int64, value *Demo, mid int64) error // mc: -key=noneKey AddCacheNone(c context.Context, value *Demo) error // mc: -key=demoKey -expire=d.demoExpire AddCacheString(c context.Context, key int64, value string) error // mc: -key=demoKey DelCacheDemos(c context.Context, keys []int64) error // mc: -key=demoKey DelCacheDemo(c context.Context, key int64) error // mc: -key=keyMid DelCacheDemo1(c context.Context, key int64, mid int64) error // mc: -key=noneKey DelCacheNone(c context.Context) error } */ package testdata import ( "context" "fmt" "github.com/go-kratos/kratos/pkg/cache/memcache" "github.com/go-kratos/kratos/pkg/log" ) var ( _ _mc ) // CacheDemos get data from mc func (d *Dao) CacheDemos(c context.Context, ids []int64) (res map[int64]*Demo, err error) { l := len(ids) if l == 0 { return } keysMap := make(map[string]int64, l) keys := make([]string, 0, l) for _, id := range ids { key := demoKey(id) keysMap[key] = id keys = append(keys, key) } replies, err := d.mc.GetMulti(c, keys) if err != nil { log.Errorv(c, log.KV("CacheDemos", fmt.Sprintf("%+v", err)), log.KV("keys", keys)) return } for _, key := range replies.Keys() { v := &Demo{} err = replies.Scan(key, v) if err != nil { log.Errorv(c, log.KV("CacheDemos", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } if res == nil { res = make(map[int64]*Demo, len(keys)) } res[keysMap[key]] = v } return } // CacheDemo get data from mc func (d *Dao) CacheDemo(c context.Context, id int64) (res *Demo, err error) { key := demoKey(id) res = &Demo{} if err = d.mc.Get(c, key).Scan(res); err != nil { res = nil if err == memcache.ErrNotFound { err = nil } } if err != nil { log.Errorv(c, log.KV("CacheDemo", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } return } // CacheDemo1 get data from mc func (d *Dao) CacheDemo1(c context.Context, id int64, mid int64) (res *Demo, err error) { key := keyMid(id, mid) res = &Demo{} if err = d.mc.Get(c, key).Scan(res); err != nil { res = nil if err == memcache.ErrNotFound { err = nil } } if err != nil { log.Errorv(c, log.KV("CacheDemo1", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } return } // CacheNone get data from mc func (d *Dao) CacheNone(c context.Context) (res *Demo, err error) { key := noneKey() res = &Demo{} if err = d.mc.Get(c, key).Scan(res); err != nil { res = nil if err == memcache.ErrNotFound { err = nil return } } if err != nil { log.Errorv(c, log.KV("CacheNone", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } return } // CacheString get data from mc func (d *Dao) CacheString(c context.Context, id int64) (res string, err error) { key := demoKey(id) err = d.mc.Get(c, key).Scan(&res) if err != nil { if err == memcache.ErrNotFound { err = nil return } log.Errorv(c, log.KV("CacheString", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } return } // AddCacheDemos Set data to mc func (d *Dao) AddCacheDemos(c context.Context, values map[int64]*Demo) (err error) { if len(values) == 0 { return } for id, val := range values { key := demoKey(id) item := &memcache.Item{Key: key, Object: val, Expiration: d.demoExpire, Flags: memcache.FlagJSON} if err = d.mc.Set(c, item); err != nil { log.Errorv(c, log.KV("AddCacheDemos", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } } return } // AddCacheDemos2 Set data to mc func (d *Dao) AddCacheDemos2(c context.Context, values map[int64]*Demo, tp int64) (err error) { if len(values) == 0 { return } for id, val := range values { key := demo2Key(id, tp) item := &memcache.Item{Key: key, Object: val, Expiration: d.demoExpire, Flags: memcache.FlagJSON} if err = d.mc.Set(c, item); err != nil { log.Errorv(c, log.KV("AddCacheDemos2", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } } return } // AddCacheDemo 这里也支持自定义注释 会替换默认的注释 func (d *Dao) AddCacheDemo(c context.Context, id int64, val *Demo) (err error) { if val == nil { return } key := demoKey(id) item := &memcache.Item{Key: key, Object: val, Expiration: d.demoExpire, Flags: memcache.FlagJSON | memcache.FlagGzip} if err = d.mc.Set(c, item); err != nil { log.Errorv(c, log.KV("AddCacheDemo", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } return } // AddCacheDemo1 Set data to mc func (d *Dao) AddCacheDemo1(c context.Context, id int64, val *Demo, mid int64) (err error) { if val == nil { return } key := keyMid(id, mid) item := &memcache.Item{Key: key, Object: val, Expiration: d.demoExpire, Flags: memcache.FlagGOB} if err = d.mc.Set(c, item); err != nil { log.Errorv(c, log.KV("AddCacheDemo1", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } return } // AddCacheNone Set data to mc func (d *Dao) AddCacheNone(c context.Context, val *Demo) (err error) { if val == nil { return } key := noneKey() item := &memcache.Item{Key: key, Object: val, Expiration: d.demoExpire, Flags: memcache.FlagJSON} if err = d.mc.Set(c, item); err != nil { log.Errorv(c, log.KV("AddCacheNone", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } return } // AddCacheString Set data to mc func (d *Dao) AddCacheString(c context.Context, id int64, val string) (err error) { if len(val) == 0 { return } key := demoKey(id) bs := []byte(val) item := &memcache.Item{Key: key, Value: bs, Expiration: d.demoExpire, Flags: memcache.FlagRAW} if err = d.mc.Set(c, item); err != nil { log.Errorv(c, log.KV("AddCacheString", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } return } // DelCacheDemos delete data from mc func (d *Dao) DelCacheDemos(c context.Context, ids []int64) (err error) { if len(ids) == 0 { return } for _, id := range ids { key := demoKey(id) if err = d.mc.Delete(c, key); err != nil { if err == memcache.ErrNotFound { err = nil continue } log.Errorv(c, log.KV("DelCacheDemos", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } } return } // DelCacheDemo delete data from mc func (d *Dao) DelCacheDemo(c context.Context, id int64) (err error) { key := demoKey(id) if err = d.mc.Delete(c, key); err != nil { if err == memcache.ErrNotFound { err = nil return } log.Errorv(c, log.KV("DelCacheDemo", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } return } // DelCacheDemo1 delete data from mc func (d *Dao) DelCacheDemo1(c context.Context, id int64, mid int64) (err error) { key := keyMid(id, mid) if err = d.mc.Delete(c, key); err != nil { if err == memcache.ErrNotFound { err = nil return } log.Errorv(c, log.KV("DelCacheDemo1", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } return } // DelCacheNone delete data from mc func (d *Dao) DelCacheNone(c context.Context) (err error) { key := noneKey() if err = d.mc.Delete(c, key); err != nil { if err == memcache.ErrNotFound { err = nil return } log.Errorv(c, log.KV("DelCacheNone", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } return }