fix: 修复 Redis 数据处理中的索引越界和数据格式校验
This commit is contained in:
@@ -261,9 +261,9 @@ func GetHashBatch(source string, keys []string) (map[string]map[string]string, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 数据源
|
// 数据源
|
||||||
rdb := DefaultRDB()
|
rdb := RDB(source)
|
||||||
if source != "" {
|
if rdb == nil {
|
||||||
rdb = RDB(source)
|
return result, fmt.Errorf("redis not client")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建一个有限的并发控制信号通道
|
// 创建一个有限的并发控制信号通道
|
||||||
@@ -288,8 +288,13 @@ func GetHashBatch(source string, keys []string) (map[string]map[string]string, e
|
|||||||
wg.Done()
|
wg.Done()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
// 检查索引是否越界
|
||||||
|
end := start + batchSize
|
||||||
|
if end > total {
|
||||||
|
end = total
|
||||||
|
}
|
||||||
pipe := rdb.Pipeline()
|
pipe := rdb.Pipeline()
|
||||||
for _, key := range keys[start : start+batchSize] {
|
for _, key := range keys[start:end] {
|
||||||
pipe.HGetAll(ctx, key)
|
pipe.HGetAll(ctx, key)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,13 +49,13 @@ func (r *UDMAuthUser) dataByRedis(imsi, neId string) []model.UDMAuthUser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for k, m := range mkv {
|
for k, m := range mkv {
|
||||||
if k == "-" {
|
if len(k) != 20 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// 跳过-号数据 ausf:360000100000130
|
// 跳过-号数据 ausf:360000100000130
|
||||||
imsi := k[5:]
|
imsi, hasPrefix := strings.CutPrefix(k, "ausf:")
|
||||||
if strings.Contains(imsi, "-") {
|
if strings.Contains(imsi, "-") || !hasPrefix {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,13 +50,13 @@ func (r *UDMSubUser) dataByRedis(imsi, neId string) []model.UDMSubUser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for k, m := range mkv {
|
for k, m := range mkv {
|
||||||
if k == "-" {
|
if len(k) != 22 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// 跳过-号数据 udm-sd:360000100000130
|
// 跳过-号数据 udm-sd:360000100000130
|
||||||
imsi := k[7:]
|
imsi, hasPrefix := strings.CutPrefix(k, "udm-sd:")
|
||||||
if strings.Contains(imsi, "-") {
|
if strings.Contains(imsi, "-") || !hasPrefix {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user