redisclusterutil.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package spiderutil
  2. import (
  3. "log"
  4. "time"
  5. "github.com/go-redis/redis"
  6. "golang.org/x/net/context"
  7. )
  8. var ctx = context.Background()
  9. var RedisCluster *redis.ClusterClient
  10. func InitRedisCluster(addrs []string) {
  11. opts := &redis.ClusterOptions{
  12. Addrs: addrs,
  13. DialTimeout: 120 * time.Second,
  14. ReadTimeout: 60 * time.Second,
  15. WriteTimeout: 60 * time.Second,
  16. }
  17. RedisCluster = redis.NewClusterClient(opts)
  18. }
  19. //set
  20. func RedisClusterSet(key string, val interface{}, timeout int) bool {
  21. result, err := RedisCluster.Set(ctx, key, val, time.Duration(timeout)*time.Second).Result()
  22. if err != nil || result != "OK" {
  23. log.Println("Redis Cluster Set Error:", result, err)
  24. return false
  25. }
  26. return true
  27. }
  28. //get
  29. func RedisClusterGet(key string) string {
  30. result, _ := RedisCluster.Get(ctx, key).Result()
  31. return result
  32. }
  33. //exists
  34. func RedisClusterExists(key string) bool {
  35. result, err := RedisCluster.Exists(ctx, key).Result()
  36. if result == 1 && err == nil {
  37. return true
  38. }
  39. if err != nil {
  40. log.Println("Redis Cluster Exists Error:", result, err)
  41. }
  42. return false
  43. }
  44. //
  45. func RedisClusterDelete(key string) {
  46. RedisCluster.Del(ctx, key)
  47. }