Documentation ¶
Index ¶
- Constants
- func EntityToCmd(key string, entity *database.DataEntity) *protocol.MultiBulkReply
- func MakeExpireCmd(key string, expireAt time.Time) *protocol.MultiBulkReply
- type CmdLine
- type Listener
- type Persister
- func (persister *Persister) Close()
- func (persister *Persister) DoRewrite(ctx *RewriteCtx) (err error)
- func (persister *Persister) FinishRewrite(ctx *RewriteCtx)
- func (persister *Persister) Fsync()
- func (persister *Persister) GenerateRDB(rdbFilename string) error
- func (persister *Persister) GenerateRDBForReplication(rdbFilename string, listener Listener, hook func()) error
- func (persister *Persister) LoadAof(maxBytes int)
- func (persister *Persister) RemoveListener(listener Listener)
- func (persister *Persister) Rewrite() error
- func (persister *Persister) SaveCmdLine(dbIndex int, cmdLine CmdLine)
- func (persister *Persister) StartRewrite() (*RewriteCtx, error)
- type RewriteCtx
Constants ¶
const ( // FsyncAlways do fsync for every command FsyncAlways = "always" // FsyncEverySec do fsync every second FsyncEverySec = "everysec" // FsyncNo lets operating system decides when to do fsync FsyncNo = "no" )
Variables ¶
This section is empty.
Functions ¶
func EntityToCmd ¶
func EntityToCmd(key string, entity *database.DataEntity) *protocol.MultiBulkReply
EntityToCmd serialize data entity to redis command
func MakeExpireCmd ¶
func MakeExpireCmd(key string, expireAt time.Time) *protocol.MultiBulkReply
MakeExpireCmd generates command line to set expiration for the given key
Types ¶
type Listener ¶ added in v1.2.9
type Listener interface { // Callback will be called-back after receiving a aof payload Callback([]CmdLine) }
Listener will be called-back after receiving a aof payload with a listener we can forward the updates to slave nodes etc.
type Persister ¶ added in v1.2.9
type Persister struct {
// contains filtered or unexported fields
}
Persister receive msgs from channel and write to AOF file
func NewPersister ¶ added in v1.2.9
func NewPersister(db database.DBEngine, filename string, load bool, fsync string, tmpDBMaker func() database.DBEngine) (*Persister, error)
NewPersister creates a new aof.Persister
func (*Persister) Close ¶ added in v1.2.9
func (persister *Persister) Close()
Close gracefully stops aof persistence procedure
func (*Persister) DoRewrite ¶ added in v1.2.9
func (persister *Persister) DoRewrite(ctx *RewriteCtx) (err error)
DoRewrite actually rewrite aof file makes DoRewrite public for testing only, please use Rewrite instead
func (*Persister) FinishRewrite ¶ added in v1.2.9
func (persister *Persister) FinishRewrite(ctx *RewriteCtx)
FinishRewrite finish rewrite procedure
func (*Persister) Fsync ¶ added in v1.2.9
func (persister *Persister) Fsync()
Fsync flushes aof file to disk
func (*Persister) GenerateRDB ¶ added in v1.2.9
GenerateRDB generates rdb file from aof file
func (*Persister) GenerateRDBForReplication ¶ added in v1.2.9
func (persister *Persister) GenerateRDBForReplication(rdbFilename string, listener Listener, hook func()) error
GenerateRDBForReplication asynchronously generates rdb file from aof file and returns a channel to receive following data parameter listener would receive following updates of rdb parameter hook allows you to do something during aof pausing
func (*Persister) LoadAof ¶ added in v1.2.9
LoadAof read aof file, can only be used before Persister.listenCmd started
func (*Persister) RemoveListener ¶ added in v1.2.9
RemoveListener removes a listener from aof handler, so we can close the listener
func (*Persister) SaveCmdLine ¶ added in v1.2.9
SaveCmdLine send command to aof goroutine through channel
func (*Persister) StartRewrite ¶ added in v1.2.9
func (persister *Persister) StartRewrite() (*RewriteCtx, error)
StartRewrite prepares rewrite procedure
type RewriteCtx ¶
type RewriteCtx struct {
// contains filtered or unexported fields
}
RewriteCtx holds context of an AOF rewriting procedure