aof

package
v1.2.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2023 License: GPL-3.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
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 CmdLine

type CmdLine = [][]byte

CmdLine is alias for [][]byte, represents a command line

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

func (persister *Persister) GenerateRDB(rdbFilename string) error

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

func (persister *Persister) LoadAof(maxBytes int)

LoadAof read aof file, can only be used before Persister.listenCmd started

func (*Persister) RemoveListener added in v1.2.9

func (persister *Persister) RemoveListener(listener Listener)

RemoveListener removes a listener from aof handler, so we can close the listener

func (*Persister) Rewrite added in v1.2.9

func (persister *Persister) Rewrite() error

Rewrite carries out AOF rewrite

func (*Persister) SaveCmdLine added in v1.2.9

func (persister *Persister) SaveCmdLine(dbIndex int, cmdLine CmdLine)

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL