1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package like
- import (
- "context"
- "fmt"
- "go-common/library/cache/redis"
- "github.com/pkg/errors"
- )
- const (
- _redDotKeyFmt = "rd_%d"
- )
- func keyRedDot(mid int64) string {
- return fmt.Sprintf(_redDotKeyFmt, mid)
- }
- // CacheRedDotTs .
- func (d *Dao) CacheRedDotTs(c context.Context, mid int64) (ts int64, err error) {
- key := keyRedDot(mid)
- conn := d.redis.Get(c)
- defer conn.Close()
- if ts, err = redis.Int64(conn.Do("GET", key)); err != nil {
- if err == redis.ErrNil {
- err = nil
- } else {
- err = errors.Wrapf(err, "conn.Do(GET, %s)", key)
- }
- }
- return
- }
- // AddCacheRedDotTs .
- func (d *Dao) AddCacheRedDotTs(c context.Context, mid, ts int64) (err error) {
- key := keyRedDot(mid)
- conn := d.redis.Get(c)
- defer conn.Close()
- if err = conn.Send("SET", key, ts); err != nil {
- err = errors.Wrapf(err, "conn.Send(SET, %s, %d)", key, ts)
- return
- }
- if err = conn.Send("EXPIRE", key, d.hotDotExpire); err != nil {
- err = errors.Wrapf(err, "conn.Send(EXPIRE, %s, %d)", key, ts)
- return
- }
- if err = conn.Flush(); err != nil {
- err = errors.Wrap(err, "AddCacheHotDotTs conn.Flush")
- return
- }
- for i := 0; i < 2; i++ {
- if _, err = conn.Receive(); err != nil {
- err = errors.Wrapf(err, "add conn.Receive(%d)", i+1)
- return
- }
- }
- return
- }
|