redis.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package spider_com
  2. import (
  3. "errors"
  4. "fmt"
  5. "strings"
  6. "time"
  7. qu "app.yhyue.com/moapp/jybase/common"
  8. "github.com/go-redis/redis"
  9. )
  10. var redisClient *redis.Client
  11. var redisClientMap map[string]*redis.Client
  12. func InitRedisClient(addrs string) {
  13. //list=192.168.3.207:1679@jytopnet123,href=192.168.3.207:1679
  14. redisClientMap = map[string]*redis.Client{}
  15. addrArr := strings.Split(addrs, ",")
  16. for _, addr := range addrArr {
  17. saddr := strings.Split(addr, "=")
  18. if len(saddr) == 2 {
  19. code := saddr[0]
  20. url_pass := strings.Split(saddr[1], "@")
  21. password := ""
  22. url := url_pass[0]
  23. if len(url_pass) == 2 {
  24. password = url_pass[1]
  25. }
  26. client := redis.NewClient(&redis.Options{
  27. Addr: url,
  28. Password: password,
  29. DB: 0,
  30. })
  31. _, err := client.Ping().Result()
  32. if err != nil {
  33. fmt.Println("Redis Init Err:", addr, err)
  34. continue
  35. }
  36. redisClientMap[code] = client
  37. } else {
  38. fmt.Println("Redis Init Err,Url Is Wrong")
  39. }
  40. }
  41. }
  42. func RedisSet(code, key string, val interface{}, timeout int) bool {
  43. defer qu.Catch()
  44. client := redisClientMap[code]
  45. if client == nil {
  46. fmt.Println("Redis Not Init Set")
  47. return false
  48. }
  49. //err := client.Set(context.Background(), key, val, time.Duration(timeout)*time.Second).Err()
  50. result, err := client.Set(key, val, time.Duration(timeout)*time.Second).Result()
  51. if result == "OK" {
  52. return true
  53. }
  54. if err != nil {
  55. fmt.Println("Set Redis Error:", err)
  56. }
  57. return false
  58. }
  59. func RedisExist(code, key string) bool {
  60. defer qu.Catch()
  61. client := redisClientMap[code]
  62. if client == nil {
  63. fmt.Println("Redis Not Init Exist")
  64. return false
  65. }
  66. result, err := client.Exists(key).Result()
  67. if err != nil {
  68. fmt.Println("Exists Redis Error:", err, result)
  69. return false
  70. }
  71. return result == 1
  72. }
  73. func RedisGet(code, key string) (string, error) {
  74. defer qu.Catch()
  75. client := redisClientMap[code]
  76. if client == nil {
  77. fmt.Println("Redis Not Init Get")
  78. return "", errors.New("Redis Not Init")
  79. }
  80. result, err := client.Get(key).Result()
  81. if err != nil {
  82. //fmt.Println("Get Redis Error:", err, result)
  83. return "", err
  84. }
  85. return result, err
  86. }