diff --git a/ip_tool/hua_chen_client.go b/ip_tool/hua_chen_client.go index ef342e7..931090c 100644 --- a/ip_tool/hua_chen_client.go +++ b/ip_tool/hua_chen_client.go @@ -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信息转换为JSON,ip:%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) } diff --git a/ip_tool/hua_chen_client_test.go b/ip_tool/hua_chen_client_test.go index 03a1356..a775c7e 100644 --- a/ip_tool/hua_chen_client_test.go +++ b/ip_tool/hua_chen_client_test.go @@ -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信息 diff --git a/ip_tool/ip_cache.go b/ip_tool/ip_cache.go index 52d8c03..20cc32b 100644 --- a/ip_tool/ip_cache.go +++ b/ip_tool/ip_cache.go @@ -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) }