@@ -13,26 +13,36 @@ import (
13
13
type AnalysisConnection struct {
14
14
redis * storages.RedisClient
15
15
Reports DBReports
16
+ scanLimitNum uint64
16
17
}
17
18
18
19
func NewAnalysisConnection (host string , port uint16 , password string ) (* AnalysisConnection , error ) {
19
20
redis , err := storages .NewRedisClient (host , port , password )
20
21
if err != nil {
21
22
return nil , err
22
23
}
23
- return & AnalysisConnection {redis , DBReports {}}, nil
24
+ return & AnalysisConnection {redis , DBReports {}, 0 }, nil
24
25
}
25
26
26
27
func (analysis * AnalysisConnection ) Close () {
27
28
if analysis .redis != nil {
28
29
_ = analysis .redis .Close ()
29
30
}
30
31
}
32
+ func (analysis * AnalysisConnection ) SetScanNum (num uint64 ) {
33
+ if num > 0 {
34
+ analysis .scanLimitNum = num
35
+ }
36
+ }
31
37
32
38
func (analysis AnalysisConnection ) Start (delimiters []string ) {
33
39
fmt .Println ("Starting analysis" )
34
40
match := "*[" + strings .Join (delimiters , "" ) + "]*"
35
41
databases , _ := analysis .redis .GetDatabases ()
42
+
43
+ if analysis .scanLimitNum == 0 {
44
+ analysis .scanLimitNum = 3000
45
+ }
36
46
37
47
var (
38
48
cursor uint64
@@ -52,7 +62,7 @@ func (analysis AnalysisConnection) Start(delimiters []string) {
52
62
_ = analysis .redis .Select (db )
53
63
54
64
for {
55
- keys , _ := analysis .redis .Scan (& cursor , match , 3000 )
65
+ keys , _ := analysis .redis .Scan (& cursor , match , analysis . scanLimitNum )
56
66
fd , fp , tmp , nk := "" , 0 , 0 , ""
57
67
for _ , key := range keys {
58
68
fd , fp , tmp , nk , ttl = "" , 0 , 0 , "" , 0
0 commit comments