database

package
v0.0.0-...-2d4ed79 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Auth

func Auth(c redis.Connection, args [][]byte) redis.Reply

Auth 校验客户端的密码

func BGRewriteAOF

func BGRewriteAOF(db *MultiDB, args [][]byte) redis.Reply

BGRewriteAOF 在后台异步的执行aof重写

func RegisterCommand

func RegisterCommand(name string, executor ExecFunc, prepare PreFunc, rollback UndoFunc, arity int)

func RewriteAOF

func RewriteAOF(db *MultiDB, args [][]byte) redis.Reply

RewriteAOF 同步的执行aof重写

Types

type CmdLine

type CmdLine = [][]byte

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

type DB

type DB struct {
	// contains filtered or unexported fields
}

func (*DB) Exec

func (db *DB) Exec(c redis.Connection, cmdLine [][]byte) redis.Reply

func (*DB) Expire

func (db *DB) Expire(key string, expireTime time.Time)

Expire 为指定的key设置TTL Cmd

func (*DB) Flush

func (db *DB) Flush()

func (*DB) ForEach

func (db *DB) ForEach(cb func(key string, data *database.DataEntity, expiration *time.Time) bool)

func (*DB) GetEntity

func (db *DB) GetEntity(key string) (*database.DataEntity, bool)

GetEntity returns DataEntity bind to given key

func (*DB) GetVersion

func (db *DB) GetVersion(key string) uint32

func (*DB) IsExpired

func (db *DB) IsExpired(key string) bool

func (*DB) Persist

func (db *DB) Persist(key string)

Persist 为指定的key取消掉TTL Cmd

func (*DB) PutEntity

func (db *DB) PutEntity(key string, entity *database.DataEntity) int

func (*DB) PutIfAbsent

func (db *DB) PutIfAbsent(key string, entity database.DataEntity) int

func (*DB) PutIfExists

func (db *DB) PutIfExists(key string, entity database.DataEntity) int

func (*DB) RWLocks

func (db *DB) RWLocks(writeKeys []string, readKeys []string)

func (*DB) RWUnLocks

func (db *DB) RWUnLocks(writeKeys []string, readKeys []string)

func (*DB) Remove

func (db *DB) Remove(key string)

Remove the given key from db

func (*DB) Removes

func (db *DB) Removes(keys ...string) (deleted int)

type ExecFunc

type ExecFunc func(db *DB, args [][]byte) redis.Reply

ExecFunc is interface for command executor args don't include cmd line

type MultiDB

type MultiDB struct {
	// contains filtered or unexported fields
}

func MakeBasicMultiDB

func MakeBasicMultiDB() *MultiDB

func NewStandaloneServer

func NewStandaloneServer() *MultiDB

func (*MultiDB) AfterClientClose

func (mdb *MultiDB) AfterClientClose(c redis.Connection)

AfterClientClose does some clean after client close connection

func (*MultiDB) Close

func (mdb *MultiDB) Close()

func (*MultiDB) Exec

func (mdb *MultiDB) Exec(c redis.Connection, cmdLine [][]byte) (result redis.Reply)

func (*MultiDB) ExecMulti

func (mdb *MultiDB) ExecMulti(conn redis.Connection, watching map[string]uint32, cmdLines []database.CmdLine) redis.Reply

func (*MultiDB) ExecWithLock

func (mdb *MultiDB) ExecWithLock(conn redis.Connection, cmdLine [][]byte) redis.Reply

func (*MultiDB) ForEach

func (mdb *MultiDB) ForEach(dbIndex int, cb func(key string, data *database.DataEntity, expiration *time.Time) bool)

func (*MultiDB) GetDBSize

func (mdb *MultiDB) GetDBSize(dbIndex int) (int, int)

func (*MultiDB) GetUndoLogs

func (mdb *MultiDB) GetUndoLogs(dbIndex int, cmdLine [][]byte) []database.CmdLine

func (*MultiDB) RWLocks

func (mdb *MultiDB) RWLocks(dbIndex int, writeKeys []string, readKeys []string)

func (*MultiDB) RWUnLocks

func (mdb *MultiDB) RWUnLocks(dbIndex int, writeKeys []string, readKeys []string)

type PreFunc

type PreFunc func(args [][]byte) ([]string, []string)

PreFunc analyses command line when queued command to `multi` returns related write keys and read keys

type UndoFunc

type UndoFunc func(db *DB, args [][]byte) []CmdLine

UndoFunc returns undo logs for the given command line execute from head to tail when undo

Jump to

Keyboard shortcuts

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