File tree Expand file tree Collapse file tree 2 files changed +36
-10
lines changed Expand file tree Collapse file tree 2 files changed +36
-10
lines changed Original file line number Diff line number Diff line change @@ -12,8 +12,11 @@ import (
12
12
13
13
"github.com/CodisLabs/redis-port/pkg/libs/errors"
14
14
"github.com/CodisLabs/redis-port/pkg/rdb/digest"
15
+ "github.com/spinlock/rdb"
15
16
)
16
17
18
+ const Version = rdb .Version
19
+
17
20
type Loader struct {
18
21
* rdbReader
19
22
crc hash.Hash64
@@ -37,7 +40,7 @@ func (l *Loader) Header() error {
37
40
}
38
41
if version , err := strconv .ParseInt (string (header [5 :]), 10 , 64 ); err != nil {
39
42
return errors .Trace (err )
40
- } else if version <= 0 || version > Version {
43
+ } else if version < 1 || version > Version {
41
44
return errors .Errorf ("verify version, invalid RDB version number %d" , version )
42
45
}
43
46
return nil
@@ -101,6 +104,20 @@ func (l *Loader) NextBinEntry() (*BinEntry, error) {
101
104
return nil , err
102
105
}
103
106
switch t {
107
+ case rdbFlagAux :
108
+ if _ , err := l .readString (); err != nil {
109
+ return nil , err
110
+ }
111
+ if _ , err := l .readString (); err != nil {
112
+ return nil , err
113
+ }
114
+ case rdbFlagResizeDB :
115
+ if _ , err := l .readLength (); err != nil {
116
+ return nil , err
117
+ }
118
+ if _ , err := l .readLength (); err != nil {
119
+ return nil , err
120
+ }
104
121
case rdbFlagExpiryMS :
105
122
ttlms , err := l .readUint64 ()
106
123
if err != nil {
Original file line number Diff line number Diff line change @@ -13,23 +13,22 @@ import (
13
13
"github.com/CodisLabs/redis-port/pkg/libs/errors"
14
14
)
15
15
16
- const (
17
- Version = 6
18
- )
19
-
20
16
const (
21
17
rdbTypeString = 0
22
18
rdbTypeList = 1
23
19
rdbTypeSet = 2
24
20
rdbTypeZSet = 3
25
21
rdbTypeHash = 4
26
22
27
- rdbTypeHashZipmap = 9
28
- rdbTypeListZiplist = 10
29
- rdbTypeSetIntset = 11
30
- rdbTypeZSetZiplist = 12
31
- rdbTypeHashZiplist = 13
23
+ rdbTypeHashZipmap = 9
24
+ rdbTypeListZiplist = 10
25
+ rdbTypeSetIntset = 11
26
+ rdbTypeZSetZiplist = 12
27
+ rdbTypeHashZiplist = 13
28
+ rdbTypeListQuicklist = 14
32
29
30
+ rdbFlagAux = 0xfa
31
+ rdbFlagResizeDB = 0xfb
33
32
rdbFlagExpiryMS = 0xfc
34
33
rdbFlagExpiry = 0xfd
35
34
rdbFlagSelectDB = 0xfe
@@ -135,6 +134,16 @@ func (r *rdbReader) readObjectValue(t byte) ([]byte, error) {
135
134
}
136
135
}
137
136
}
137
+ case rdbTypeListQuicklist :
138
+ if n , err := r .readLength (); err != nil {
139
+ return nil , err
140
+ } else {
141
+ for i := 0 ; i < int (n ); i ++ {
142
+ if _ , err := r .readString (); err != nil {
143
+ return nil , err
144
+ }
145
+ }
146
+ }
138
147
}
139
148
return b .Bytes (), nil
140
149
}
You can’t perform that action at this time.
0 commit comments