redisServer.go 811 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package server
  2. import (
  3. "context"
  4. "github.com/redis/go-redis/v9"
  5. "go_zh/config"
  6. "sync"
  7. "time"
  8. )
  9. type redisServer struct {
  10. rdb *redis.Client
  11. }
  12. var (
  13. redisInstance *redisServer
  14. redisOnce sync.Once
  15. )
  16. var ctx = context.Background()
  17. // GetRedisServerInstance 获取单例实例
  18. func GetRedisServerInstance() *redisServer {
  19. redisOnce.Do(func() {
  20. redisInstance = &redisServer{
  21. rdb: config.Rdb,
  22. }
  23. })
  24. return redisInstance
  25. }
  26. func (r *redisServer) SetStr(key string, val string, timeout int) bool {
  27. err := r.rdb.Set(ctx, key, val, time.Duration(timeout)*time.Second).Err()
  28. if err != nil {
  29. return false
  30. }
  31. return true
  32. }
  33. func (r *redisServer) GetStr(key string) string {
  34. if key == "" {
  35. return ""
  36. }
  37. val, err := r.rdb.Get(ctx, key).Result()
  38. if err != nil {
  39. return ""
  40. }
  41. return val
  42. }