WEQServer/internal/data/weather_cache.go

47 lines
1.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.Data) error {
_redis = redis.NewClient(&redis.Options{
Addr: data.Redis.Addr,
Password: data.Redis.Password,
DB: data.Redis.DB,
ReadTimeout: data.Redis.ReadTimeout * time.Second,
WriteTimeout: data.Redis.WriteTimeout * time.Second,
PoolSize: data.Redis.PoolSize,
MinIdleConns: data.Redis.MinIdleConns,
})
_expire = data.Redis.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
}
}