mc.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package block
  2. import (
  3. "context"
  4. "fmt"
  5. "go-common/library/cache/memcache"
  6. "github.com/pkg/errors"
  7. )
  8. func userKey(mid int64) (key string) {
  9. key = fmt.Sprintf("u_%d", mid)
  10. return
  11. }
  12. func syncBlockTypeID() (key string) {
  13. return "sync_bt_cur_id"
  14. }
  15. //SetSyncBlockTypeID is.
  16. func (d *Dao) SetSyncBlockTypeID(c context.Context, id int64) (err error) {
  17. var (
  18. key = syncBlockTypeID()
  19. conn = d.mc.Get(c)
  20. )
  21. defer conn.Close()
  22. if err = conn.Set(&memcache.Item{Key: key, Object: id, Expiration: 3600 * 24, Flags: memcache.FlagJSON}); err != nil {
  23. err = errors.WithStack(err)
  24. return
  25. }
  26. return
  27. }
  28. //SyncBlockTypeID is.
  29. func (d *Dao) SyncBlockTypeID(c context.Context) (id int64, err error) {
  30. var (
  31. key = syncBlockTypeID()
  32. conn = d.mc.Get(c)
  33. item *memcache.Item
  34. )
  35. defer conn.Close()
  36. if item, err = conn.Get(key); err != nil {
  37. if err == memcache.ErrNotFound {
  38. err = nil
  39. return
  40. }
  41. err = errors.WithStack(err)
  42. return
  43. }
  44. if err = conn.Scan(item, &id); err != nil {
  45. err = errors.WithStack(err)
  46. return
  47. }
  48. return
  49. }
  50. // DeleteUserCache is.
  51. func (d *Dao) DeleteUserCache(c context.Context, mid int64) (err error) {
  52. var (
  53. key = userKey(mid)
  54. conn = d.mc.Get(c)
  55. )
  56. defer conn.Close()
  57. if err = conn.Delete(key); err != nil {
  58. err = errors.WithStack(err)
  59. return
  60. }
  61. return
  62. }