package data import ( "context" "github.com/go-redis/redis/v8" "time" "weather_and_earthquake/internal/config" ) var _redis *redis.Client var _expire time.Duration // 初始化 redis 连接 func InitWeatherCache(ctx context.Context, data *config.Redis) error { _redis = redis.NewClient(&redis.Options{ Addr: data.Addr, Password: data.Password, DB: data.DB, ReadTimeout: data.ReadTimeout * time.Second, WriteTimeout: data.WriteTimeout * time.Second, PoolSize: data.PoolSize, MinIdleConns: data.MinIdleConns, }) _expire = data.Expire _, err := _redis.Ping(ctx).Result() return err } // 设置某个地方的天气情况,默认保留1小时数据 func SetWeatherCondition(ctx context.Context, key, condition string) error { _, err := _redis.SetNX(ctx, key, condition, _expire*time.Second).Result() return err } // 查找某个地方的天气情况 func GetWeatherCondition(ctx context.Context, key string) (string, error) { value, err := _redis.Get(ctx, key).Result() if err == nil { return value, nil } else if err == redis.Nil { return "", nil } else { return "", err } }