Documentation
¶
Overview ¶
Package rdb implements parsing and encoding of the Redis RDB file format.
Index ¶
- Constants
- func Decode(r io.Reader, d Decoder) error
- func DecodeDump(dump []byte, db int, key []byte, expiry int64, d Decoder) error
- func DecodeFromBufio(r *bufio.Reader, d Decoder) error
- type Decoder
- type Encoder
- func (e *Encoder) EncodeDatabase(n int) error
- func (e *Encoder) EncodeDumpFooter() error
- func (e *Encoder) EncodeExpiry(expiry uint64) error
- func (e *Encoder) EncodeFloat(f float64) (err error)
- func (e *Encoder) EncodeFooter() error
- func (e *Encoder) EncodeHeader() error
- func (e *Encoder) EncodeLength(l uint32) (err error)
- func (e *Encoder) EncodeString(s []byte) error
- func (e *Encoder) EncodeType(v ValueType) error
- type ValueType
Constants ¶
View Source
const Version = 6
Variables ¶
This section is empty.
Functions ¶
func DecodeDump ¶
Decode a byte slice from the Redis DUMP command. The dump does not contain the database, key or expiry, so they must be included in the function call (but can be zero values).
Types ¶
type Decoder ¶
type Decoder interface {
// StartRDB is called when parsing of a valid RDB file starts.
StartRDB()
// StartDatabase is called when database n starts.
// Once a database starts, another database will not start until EndDatabase is called.
StartDatabase(n int)
// AUX field
Aux(key, value []byte)
// ResizeDB hint
ResizeDatabase(dbSize, expiresSize uint32)
// Set is called once for each string key.
Set(key, value []byte, expiry int64)
// StartHash is called at the beginning of a hash.
// Hset will be called exactly length times before EndHash.
StartHash(key []byte, length, expiry int64)
// Hset is called once for each field=value pair in a hash.
Hset(key, field, value []byte)
// EndHash is called when there are no more fields in a hash.
EndHash(key []byte)
// StartSet is called at the beginning of a set.
// Sadd will be called exactly cardinality times before EndSet.
StartSet(key []byte, cardinality, expiry int64)
// Sadd is called once for each member of a set.
Sadd(key, member []byte)
// EndSet is called when there are no more fields in a set.
EndSet(key []byte)
// StartList is called at the beginning of a list.
// Rpush will be called exactly length times before EndList.
// If length of the list is not known, then length is -1
StartList(key []byte, length, expiry int64)
// Rpush is called once for each value in a list.
Rpush(key, value []byte)
// EndList is called when there are no more values in a list.
EndList(key []byte)
// StartZSet is called at the beginning of a sorted set.
// Zadd will be called exactly cardinality times before EndZSet.
StartZSet(key []byte, cardinality, expiry int64)
// Zadd is called once for each member of a sorted set.
Zadd(key []byte, score float64, member []byte)
// EndZSet is called when there are no more members in a sorted set.
EndZSet(key []byte)
// EndDatabase is called at the end of a database.
EndDatabase(n int)
// EndRDB is called when parsing of the RDB file is complete.
EndRDB()
}
A Decoder must be implemented to parse a RDB file.
type Encoder ¶
type Encoder struct {
// contains filtered or unexported fields
}
func NewEncoder ¶
func (*Encoder) EncodeDatabase ¶
func (*Encoder) EncodeDumpFooter ¶
func (*Encoder) EncodeExpiry ¶
func (*Encoder) EncodeFloat ¶
func (*Encoder) EncodeFooter ¶
func (*Encoder) EncodeHeader ¶
func (*Encoder) EncodeLength ¶
func (*Encoder) EncodeString ¶
func (*Encoder) EncodeType ¶
type ValueType ¶
type ValueType byte
const ( TypeString ValueType = 0 TypeList ValueType = 1 TypeSet ValueType = 2 TypeZSet ValueType = 3 TypeHash ValueType = 4 TypeHashZipmap ValueType = 9 TypeListZiplist ValueType = 10 TypeSetIntset ValueType = 11 TypeZSetZiplist ValueType = 12 TypeHashZiplist ValueType = 13 TypeListQuicklist ValueType = 14 )
Directories
¶
| Path | Synopsis |
|---|---|
|
Package crc64 implements the Jones coefficients with an init value of 0.
|
Package crc64 implements the Jones coefficients with an init value of 0. |
|
This is a very basic example of a program that implements rdb.decoder and outputs a human readable diffable dump of the rdb file.
|
This is a very basic example of a program that implements rdb.decoder and outputs a human readable diffable dump of the rdb file. |
Click to show internal directories.
Click to hide internal directories.
