package server import ( "context" "github.com/redis/go-redis/v9" "go_zh/config" "sync" "time" ) type RedisServer struct { rdb *redis.Client } var ( redisInstance *RedisServer redisOnce sync.Once ) var ctx = context.Background() // GetRedisServerInstance 获取单例实例 func GetRedisServerInstance() *RedisServer { redisOnce.Do(func() { redisInstance = &RedisServer{ rdb: config.Rdb, } }) return redisInstance } func (r *RedisServer) SetStr(key string, val string, timeout int) bool { err := r.rdb.Set(ctx, key, val, time.Duration(timeout)*time.Second).Err() if err != nil { return false } return true } func (r *RedisServer) GetStr(key string) string { if key == "" { return "" } val, err := r.rdb.Get(ctx, key).Result() if err != nil { return "" } return val }