redis.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package redis
  2. import (
  3. "context"
  4. "fmt"
  5. "go-common/library/log"
  6. "time"
  7. )
  8. const (
  9. _videoJamTime = "va_v_jam_time"
  10. )
  11. // SetVideoJam set video traffic jam time
  12. func (d *Dao) SetVideoJam(c context.Context, jamTime int) (err error) {
  13. var conn = d.redis.Get(c)
  14. defer conn.Close()
  15. if _, err = conn.Do("SET", _videoJamTime, jamTime); err != nil {
  16. log.Error("conn.Do(SET, %s, %d) error(%v)", _videoJamTime, jamTime, err)
  17. }
  18. return
  19. }
  20. // TrackAddRedis add track redis
  21. func (d *Dao) TrackAddRedis(c context.Context, key, value string) (err error) {
  22. if key == "" {
  23. log.Warn("TrackAddRedis add empty key(%s) value(%v)", key, value)
  24. return fmt.Errorf("empty key")
  25. }
  26. var conn = d.redis.Get(c)
  27. defer conn.Close()
  28. if _, err = conn.Do("ZADD", key, time.Now().Unix(), value); err != nil {
  29. log.Error("conn.Do(ZADD, %s, %s) error(%v)", key, value, err)
  30. }
  31. return
  32. }
  33. // TrackAddVideosRedis add track video redis
  34. func (d *Dao) TrackAddVideosRedis(c context.Context, keys []string, value string) (err error) {
  35. var conn = d.redis.Get(c)
  36. defer conn.Close()
  37. for _, key := range keys {
  38. if err = conn.Send("ZADD", key, time.Now().Unix(), value); err != nil {
  39. log.Error("conn.Send(ZADD, %s, %s) error(%v)", key, value, err)
  40. }
  41. }
  42. if err = conn.Flush(); err != nil {
  43. log.Error("add conn.Flush error(%v)", err)
  44. return
  45. }
  46. for i := 0; i < len(keys); i++ {
  47. if _, err = conn.Receive(); err != nil {
  48. log.Error("add conn.Receive(%d) error(%v)", i+1, err)
  49. return
  50. }
  51. }
  52. return
  53. }
  54. // TrackRemRedis remove track redis
  55. func (d *Dao) TrackRemRedis(c context.Context, key, value string) (err error) {
  56. var conn = d.redis.Get(c)
  57. defer conn.Close()
  58. if _, err = conn.Do("ZREM", key, value); err != nil {
  59. log.Error("conn.Do(ZREM, %s, %s) error(%v)", key, value, err)
  60. }
  61. return
  62. }
  63. // TrackRemVideosRedis remove video track redis
  64. func (d *Dao) TrackRemVideosRedis(c context.Context, keys []string, value string) (err error) {
  65. var conn = d.redis.Get(c)
  66. defer conn.Close()
  67. for _, key := range keys {
  68. if err = conn.Send("ZREM", key, value); err != nil {
  69. log.Error("conn.Send(ZREM, %s, %s) error(%v)", key, value, err)
  70. }
  71. }
  72. if err = conn.Flush(); err != nil {
  73. log.Error("add conn.Flush error(%v)", err)
  74. return
  75. }
  76. for i := 0; i < len(keys); i++ {
  77. if _, err = conn.Receive(); err != nil {
  78. log.Error("add conn.Receive(%d) error(%v)", i+1, err)
  79. return
  80. }
  81. }
  82. return
  83. }