feature/ip优化

This commit is contained in:
吕翠丽 2025-06-17 16:57:42 +08:00
parent 6d3891390f
commit 169996cc8a
3 changed files with 10 additions and 9 deletions

View File

@ -102,7 +102,13 @@ func (h *HuaChenIpClient) GetIpInfoFormCache(ctx context.Context, ip string) (re
if err != nil {
return nil, errors.Wrapf(err, "获取ip:%s信息失败", ip)
}
err = h.cache.Set(ctx, h.ipKey(ip), *info, 24*time.Hour)
infoJson, err := json.Marshal(info)
if err != nil {
return nil, errors.Wrapf(err, "无法将IP信息转换为JSONip:%s", ip)
}
err = h.cache.Set(ctx, h.ipKey(ip), string(infoJson), 24*time.Hour)
if err != nil {
return nil, errors.Wrapf(err, "缓存ip:%s信息失败", ip)
}

View File

@ -75,17 +75,12 @@ func NewRedisCache(client *redis.Client) *RedisCache {
return &RedisCache{client: client}
}
func (r *RedisCache) Set(ctx context.Context, ip string, info ApiResult, ttl time.Duration) error {
func (r *RedisCache) Set(ctx context.Context, ip string, info string, ttl time.Duration) error {
if ip == "" {
return errors.New("ip不能为空")
}
data, err := json.Marshal(info)
if err != nil {
return fmt.Errorf("无法封送IP信息: %w", err)
}
return r.client.Set(ctx, ip, data, ttl).Err()
return r.client.Set(ctx, ip, info, ttl).Err()
}
// Get 从Redis获取IP信息

View File

@ -7,7 +7,7 @@ import (
// Cache 定义缓存接口,遵循接口隔离原则
type ICacheAdapter interface {
Set(ctx context.Context, ip string, info ApiResult, ttl time.Duration) error
Set(ctx context.Context, ip string, info string, ttl time.Duration) error
Get(ctx context.Context, ip string) (*ApiResult, error)
Exists(ctx context.Context, ip string) (bool, error)
}