123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package dao
- import (
- "context"
- "fmt"
- "go-common/library/cache/memcache"
- "go-common/library/log"
- )
- const (
- _prefixUUID = "uuid_%d_%s"
- _prefixCD = "cd_%d_%d"
- )
- func uuidKey(biz int64, uuid string) string {
- return fmt.Sprintf(_prefixUUID, biz, uuid)
- }
- func cdKey(app, mid int64) string {
- return fmt.Sprintf(_prefixCD, app, mid)
- }
- // pingMc ping memcache
- func (d *Dao) pingMC(c context.Context) (err error) {
- conn := d.mc.Get(c)
- defer conn.Close()
- item := memcache.Item{Key: "ping", Value: []byte{1}, Expiration: d.mcUUIDExpire}
- err = conn.Set(&item)
- return
- }
- // ExistsUUIDCache gets uuid from cache.
- func (d *Dao) ExistsUUIDCache(c context.Context, biz int64, uuid string) (exist bool, err error) {
- var (
- conn = d.mc.Get(c)
- key = uuidKey(biz, uuid)
- )
- defer conn.Close()
- if _, err = conn.Get(key); err != nil {
- if err == memcache.ErrNotFound {
- err = nil
- return
- }
- PromError("mc:get uuid")
- log.Error("ExistsUUIDCache() conn.Get(%s) error(%v)", key, err)
- return
- }
- exist = true
- return
- }
- // AddUUIDCache adds uuid cache.
- func (d *Dao) AddUUIDCache(c context.Context, biz int64, uuid string) (err error) {
- var (
- conn = d.mc.Get(c)
- key = uuidKey(biz, uuid)
- item = &memcache.Item{Key: key, Value: []byte{}, Expiration: d.mcUUIDExpire}
- )
- defer conn.Close()
- if err = conn.Set(item); err != nil {
- PromError("mc:add uuid")
- log.Error("AddUUIDCache() conn.Set(%+v) error(%v)", item, err)
- }
- return
- }
- // DelUUIDCache delete uuid cache.
- func (d *Dao) DelUUIDCache(c context.Context, biz int64, uuid string) (err error) {
- var (
- conn = d.mc.Get(c)
- key = uuidKey(biz, uuid)
- )
- defer conn.Close()
- if err = conn.Delete(key); err != nil {
- PromError("mc:del uuid")
- log.Error("DelUUIDCache(%s) error(%v)", key, err)
- }
- return
- }
- // ExistsCDCache gets cd from cache.
- func (d *Dao) ExistsCDCache(ctx context.Context, app, mid int64) (exist bool, err error) {
- var (
- conn = d.mc.Get(ctx)
- key = cdKey(app, mid)
- )
- defer conn.Close()
- if _, err = conn.Get(key); err != nil {
- if err == memcache.ErrNotFound {
- err = nil
- return
- }
- PromError("mc:get cd")
- log.Error("ExistsCDCache() conn.Get(%s) error(%v)", key, err)
- return
- }
- exist = true
- return
- }
- // AddCDCache adds cd cache.
- func (d *Dao) AddCDCache(ctx context.Context, app, mid int64) (err error) {
- var (
- conn = d.mc.Get(ctx)
- key = cdKey(app, mid)
- item = &memcache.Item{Key: key, Value: []byte{}, Expiration: d.mcCDExpire}
- )
- defer conn.Close()
- if err = conn.Set(item); err != nil {
- PromError("mc:add cd")
- log.Error("AddCDCache() conn.Set(%+v) error(%v)", item, err)
- }
- return
- }
|