From beb0f2a06d5d786b5e3ee085f514307ec482f9b7 Mon Sep 17 00:00:00 2001 From: vinllen Date: Wed, 3 Apr 2019 19:18:28 +0800 Subject: [PATCH 1/2] support 5.0 rdb RDB_OPCODE_MODULE_AUX, RDB_OPCODE_IDLE and RDB_OPCODE_FREQ type --- src/pkg/rdb/loader.go | 24 ++++++++++++++++++++++-- src/pkg/rdb/reader.go | 12 +++++++++++- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/pkg/rdb/loader.go b/src/pkg/rdb/loader.go index 5f84ac9..7ca4faf 100644 --- a/src/pkg/rdb/loader.go +++ b/src/pkg/rdb/loader.go @@ -157,8 +157,28 @@ func (l *Loader) NextBinEntry() (*BinEntry, error) { l.db = dbnum case rdbFlagEOF: return nil, nil - case rdbFlagOnlyValue: - fallthrough + case rdbFlagModuleAux: + // currently, ignore this filed + _, err := l.ReadLength() // module-id + if err != nil { + return nil, err + } + // skip module + if err = rdbLoadCheckModuleValue(l); err != nil { + return nil, err + } + case rdbFlagIdle: + // ignore idle because target redis doesn't support this for given key + _, err := l.ReadLength() + if err != nil { + return nil, err + } + case rdbFlagFreq: + // ignore freq because target redis doesn't support this for given key + _, err := l.readUint8() + if err != nil { + return nil, err + } default: var key []byte if l.remainMember == 0 { diff --git a/src/pkg/rdb/reader.go b/src/pkg/rdb/reader.go index 068eb94..f9a5c5e 100644 --- a/src/pkg/rdb/reader.go +++ b/src/pkg/rdb/reader.go @@ -35,13 +35,23 @@ const ( RdbTypeQuicklist = 14 RDBTypeStreamListPacks = 15 // stream - rdbFlagOnlyValue = 0xf9 + rdbFlagModuleAux = 0xf7 + rdbFlagIdle = 0xf8 + rdbFlagFreq = 0xf9 RdbFlagAUX = 0xfa rdbFlagResizeDB = 0xfb rdbFlagExpiryMS = 0xfc rdbFlagExpiry = 0xfd rdbFlagSelectDB = 0xfe rdbFlagEOF = 0xff + + // Module serialized values sub opcodes + rdbModuleOpcodeEof = 0 + rdbModuleOpcodeSint = 1 + rdbModuleOpcodeUint = 2 + rdbModuleOpcodeFloat = 3 + rdbModuleOpcodeDouble = 4 + rdbModuleOpcodeString = 5 ) const ( From 9fa0f79cca319c0485dff85137c16e35ff4791d7 Mon Sep 17 00:00:00 2001 From: vinllen Date: Wed, 3 Apr 2019 19:20:33 +0800 Subject: [PATCH 2/2] add 1.2.2 --- ChangeLog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ChangeLog b/ChangeLog index 8073bc9..f6648d0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2019-04-03 Alibaba Cloud. + * version: 1.2.2 + * BUGFIX: support 5.0 rdb RDB_OPCODE_MODULE_AUX, RDB_OPCODE_IDLE and + RDB_OPCODE_FREQ type. 2019-03-27 Alibaba Cloud. * version: 1.2.1 * IMPROVE: support syncing lua script in RDB syncing.