net.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package redis
  2. import (
  3. "context"
  4. "go-common/library/cache/redis"
  5. "go-common/library/log"
  6. )
  7. //SetMulti setex key expire val, kvs as multi key val
  8. func (d *Dao) SetMulti(c context.Context, kvs map[string]string) (err error) {
  9. if len(kvs) == 0 {
  10. return
  11. }
  12. conn := d.cluster.Get(c)
  13. defer conn.Close()
  14. //拼接参数
  15. for key, val := range kvs {
  16. if err = conn.Send("SETEX", key, d.netExpire, val); err != nil {
  17. log.Error("SetMulti conn.send(SETEX) error(%v)", err)
  18. return
  19. }
  20. }
  21. if err = conn.Flush(); err != nil {
  22. log.Error("SetMulti conn.Flush error(%v)", err)
  23. }
  24. return
  25. }
  26. //MGet get multi key value
  27. func (d *Dao) MGet(c context.Context, keys ...string) (dest []string, err error) {
  28. //检测参数
  29. if len(keys) == 0 {
  30. return
  31. }
  32. //拼接查询参数+ redis请求
  33. args := redis.Args{}
  34. for _, item := range keys {
  35. args = args.Add(item)
  36. }
  37. conn := d.cluster.Get(c)
  38. defer conn.Close()
  39. if dest, err = redis.Strings(conn.Do("MGET", args...)); err != nil {
  40. log.Error("MGet conn.Do(mget) error(%v) args(%+v)", err, args)
  41. }
  42. return
  43. }
  44. //DelMulti del redis keys
  45. func (d *Dao) DelMulti(c context.Context, keys ...string) (err error) {
  46. if len(keys) == 0 {
  47. return
  48. }
  49. conn := d.cluster.Get(c)
  50. defer conn.Close()
  51. args := redis.Args{}
  52. for _, k := range keys {
  53. args = args.Add(k)
  54. }
  55. if _, err = redis.Int(conn.Do("DEL", args...)); err != nil {
  56. log.Error("DelMulti conn.Do(del) error(%v) args(%+v)", err, args)
  57. }
  58. return
  59. }