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 (
1212
1313 "github.com/CodisLabs/redis-port/pkg/libs/errors"
1414 "github.com/CodisLabs/redis-port/pkg/rdb/digest"
15+ "github.com/spinlock/rdb"
1516)
1617
18+ const Version = rdb .Version
19+
1720type Loader struct {
1821 * rdbReader
1922 crc hash.Hash64
@@ -37,7 +40,7 @@ func (l *Loader) Header() error {
3740 }
3841 if version , err := strconv .ParseInt (string (header [5 :]), 10 , 64 ); err != nil {
3942 return errors .Trace (err )
40- } else if version <= 0 || version > Version {
43+ } else if version < 1 || version > Version {
4144 return errors .Errorf ("verify version, invalid RDB version number %d" , version )
4245 }
4346 return nil
@@ -101,6 +104,20 @@ func (l *Loader) NextBinEntry() (*BinEntry, error) {
101104 return nil , err
102105 }
103106 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+ }
104121 case rdbFlagExpiryMS :
105122 ttlms , err := l .readUint64 ()
106123 if err != nil {
Original file line number Diff line number Diff line change @@ -13,23 +13,22 @@ import (
1313 "github.com/CodisLabs/redis-port/pkg/libs/errors"
1414)
1515
16- const (
17- Version = 6
18- )
19-
2016const (
2117 rdbTypeString = 0
2218 rdbTypeList = 1
2319 rdbTypeSet = 2
2420 rdbTypeZSet = 3
2521 rdbTypeHash = 4
2622
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
3229
30+ rdbFlagAux = 0xfa
31+ rdbFlagResizeDB = 0xfb
3332 rdbFlagExpiryMS = 0xfc
3433 rdbFlagExpiry = 0xfd
3534 rdbFlagSelectDB = 0xfe
@@ -135,6 +134,16 @@ func (r *rdbReader) readObjectValue(t byte) ([]byte, error) {
135134 }
136135 }
137136 }
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+ }
138147 }
139148 return b .Bytes (), nil
140149}
You can’t perform that action at this time.
0 commit comments