Documentation ¶
Overview ¶
Package godis is a memory database with redis compatible interface
Index ¶
- func Auth(c redis.Connection, args [][]byte) redis.Reply
- func BGRewriteAOF(db *MultiDB, args [][]byte) redis.Reply
- func DiscardMulti(conn redis.Connection) redis.Reply
- func EnqueueCmd(conn redis.Connection, cmdLine [][]byte) redis.Reply
- func GetRelatedKeys(cmdLine [][]byte) ([]string, []string)
- func Ping(db *DB, args [][]byte) redis.Reply
- func RegisterCommand(name string, executor ExecFunc, prepare PreFunc, rollback UndoFunc, arity int)
- func RewriteAOF(db *MultiDB, args [][]byte) redis.Reply
- func StartMulti(conn redis.Connection) redis.Reply
- func Watch(db *DB, conn redis.Connection, args [][]byte) redis.Reply
- type CmdLine
- type DB
- func (db *DB) Exec(c redis.Connection, cmdLine [][]byte) redis.Reply
- func (db *DB) ExecMulti(conn redis.Connection, watching map[string]uint32, cmdLines []CmdLine) redis.Reply
- func (db *DB) Expire(key string, expireTime time.Time)
- func (db *DB) Flush()
- func (db *DB) ForEach(cb func(key string, data *database.DataEntity, expiration *time.Time) bool)
- func (db *DB) GetEntity(key string) (*database.DataEntity, bool)
- func (db *DB) GetUndoLogs(cmdLine [][]byte) []CmdLine
- func (db *DB) GetVersion(key string) uint32
- func (db *DB) IsExpired(key string) bool
- func (db *DB) Persist(key string)
- func (db *DB) PutEntity(key string, entity *database.DataEntity) int
- func (db *DB) PutIfAbsent(key string, entity *database.DataEntity) int
- func (db *DB) PutIfExists(key string, entity *database.DataEntity) int
- func (db *DB) RWLocks(writeKeys []string, readKeys []string)
- func (db *DB) RWUnLocks(writeKeys []string, readKeys []string)
- func (db *DB) Remove(key string)
- func (db *DB) Removes(keys ...string) (deleted int)
- type ExecFunc
- type MultiDB
- func (mdb *MultiDB) AfterClientClose(c redis.Connection)
- func (mdb *MultiDB) Close()
- func (mdb *MultiDB) Exec(c redis.Connection, cmdLine [][]byte) (result redis.Reply)
- func (mdb *MultiDB) ExecMulti(conn redis.Connection, watching map[string]uint32, cmdLines []CmdLine) redis.Reply
- func (mdb *MultiDB) ExecWithLock(conn redis.Connection, cmdLine [][]byte) redis.Reply
- func (mdb *MultiDB) ForEach(dbIndex int, ...)
- func (mdb *MultiDB) GetUndoLogs(dbIndex int, cmdLine [][]byte) []CmdLine
- func (mdb *MultiDB) RWLocks(dbIndex int, writeKeys []string, readKeys []string)
- func (mdb *MultiDB) RWUnLocks(dbIndex int, writeKeys []string, readKeys []string)
- type PreFunc
- type UndoFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Auth ¶
func Auth(c redis.Connection, args [][]byte) redis.Reply
Auth validate client's password
func BGRewriteAOF ¶
BGRewriteAOF asynchronously rewrites Append-Only-File
func DiscardMulti ¶
func DiscardMulti(conn redis.Connection) redis.Reply
DiscardMulti drops MULTI pending commands
func EnqueueCmd ¶
func EnqueueCmd(conn redis.Connection, cmdLine [][]byte) redis.Reply
EnqueueCmd puts command line into `multi` pending queue
func GetRelatedKeys ¶
GetRelatedKeys analysis related keys
func RegisterCommand ¶
RegisterCommand registers a new command arity means allowed number of cmdArgs, arity < 0 means len(args) >= -arity. for example: the arity of `get` is 2, `mget` is -2
func StartMulti ¶
func StartMulti(conn redis.Connection) redis.Reply
StartMulti starts multi-command-transaction
Types ¶
type DB ¶
type DB struct {
// contains filtered or unexported fields
}
DB stores data and execute user's commands
func (*DB) ExecMulti ¶
func (db *DB) ExecMulti(conn redis.Connection, watching map[string]uint32, cmdLines []CmdLine) redis.Reply
ExecMulti executes multi commands transaction Atomically and Isolated
func (*DB) GetEntity ¶
func (db *DB) GetEntity(key string) (*database.DataEntity, bool)
GetEntity returns DataEntity bind to given key
func (*DB) GetUndoLogs ¶
GetUndoLogs return rollback commands
func (*DB) GetVersion ¶
func (*DB) PutEntity ¶
func (db *DB) PutEntity(key string, entity *database.DataEntity) int
PutEntity a DataEntity into DB
func (*DB) PutIfAbsent ¶
func (db *DB) PutIfAbsent(key string, entity *database.DataEntity) int
PutIfAbsent insert an DataEntity only if the key not exists
func (*DB) PutIfExists ¶
func (db *DB) PutIfExists(key string, entity *database.DataEntity) int
PutIfExists edit an existing DataEntity
type MultiDB ¶
type MultiDB struct {
// contains filtered or unexported fields
}
func MakeBasicMultiDB ¶
func MakeBasicMultiDB() *MultiDB
MakeBasicMultiDB create a MultiDB only with basic abilities for aof rewrite and other usages
func NewStandaloneServer ¶
func NewStandaloneServer() *MultiDB
NewStandaloneServer creates a standalone redis server, with multi database and all other funtions
func (*MultiDB) AfterClientClose ¶
func (mdb *MultiDB) AfterClientClose(c redis.Connection)
AfterClientClose does some clean after client close connection
func (*MultiDB) Exec ¶
Exec executes command parameter `cmdLine` contains command and its arguments, for example: "set key value"
func (*MultiDB) ExecWithLock ¶
func (*MultiDB) GetUndoLogs ¶
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package cluster provides a server side cluster which is transparent to client.
|
Package cluster provides a server side cluster which is transparent to client. |
datastruct
|
|
interface
|
|
lib
|
|
redis
|
|