package server import ( "context" "github.com/redis/go-redis/v9" "go_zh/config" "time" ) type RedisServer struct { rdb *redis.Client } // 定义单例实例,但不在包级别初始化 var redisServerInstance *RedisServer var ctx = context.Background() // 使用init函数初始化单例实例 func init() { redisServerInstance = &RedisServer{ rdb: config.Rdb, } } // 获取单例实例的方法 func GetRedisServerInstance() *RedisServer { return redisServerInstance } 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 "" } ctx := context.Background() val, err := r.rdb.Get(ctx, key).Result() if err != nil { return "" } return val }