kvdb

package module
v0.0.0-...-2a03d3a Latest Latest
Warning

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

Go to latest
Published: Aug 11, 2023 License: Apache-2.0 Imports: 25 Imported by: 0

README

kvdb

基于Bitcask存储模型,并发每秒可写入10w+条数据,支持并发事务,添加索引,命令行交互,范围查询和迭代操作

Documentation

Index

Constants

View Source
const (
	KIB
	MIB
	GIB
	DefaultBucket = "plz_dont_use"
)
View Source
const (
	Add    = 6
	Delete = 7
)
View Source
const (
	LOGFILE     = "E:\\golangProject\\demo0\\osfile\\logger.log"
	ERRORFILE   = "E:\\golangProject\\demo0\\osfile\\error.log"
	MAXFILESIZE = 1024
)

Variables

View Source
var (
	OK           = "ok"
	SyntaxError  = "syntax error"
	ExecuteError = "function execute failed"
	NotFound     = "key value not found"
)
View Source
var (
	NotWritable    = errors.New("not writable")
	DatabaseClosed = errors.New("database had closed")
	BucketNotExist = errors.New("bucket not exist")
)
View Source
var SupportedCommand = map[string]cmdStrHandler{
	"put":       putString,
	"putTTL":    putTTLString,
	"get":       getString,
	"delete":    deleteString,
	"getDelete": getDeleteString,
}

Functions

func BytesToString

func BytesToString(bts []byte) string

func Console

func Console(output string)

func DecodeValue

func DecodeValue(data []byte, dst any) error

func EncodeKey

func EncodeKey(key any) ([]byte, error)

func EncodeValue

func EncodeValue(value any) ([]byte, error)

func ErrorFile

func ErrorFile(output string)

func File

func File(output string)

func HashKey

func HashKey(key []byte) uint32

func RunClient

func RunClient()

func RunServer

func RunServer()

func StringToBytes

func StringToBytes(str string) []byte

Types

type Bucket

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

func DecodeBucketHeader

func DecodeBucketHeader(buf []byte) *Bucket

func (*Bucket) EncodeBucket

func (b *Bucket) EncodeBucket() []byte

type Client

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

type DB

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

func Open

func Open(option *Option) (*DB, error)

func (*DB) Begin

func (d *DB) Begin(writable bool) (*TX, error)

func (*DB) Close

func (d *DB) Close()

func (*DB) Count

func (d *DB) Count(buckets ...string) []int

func (*DB) CreateOrder

func (d *DB) CreateOrder(condition func([]byte, []byte) bool, buckets ...string) error

func (*DB) Delete

func (d *DB) Delete(key any, buckets ...string) error

func (*DB) Get

func (d *DB) Get(key any, buckets ...string) ([][]byte, error)

func (*DB) GetDelete

func (d *DB) GetDelete(key any, buckets ...string) ([][]byte, error)

func (*DB) GetPut

func (d *DB) GetPut(key, value any, buckets ...string) ([][]byte, error)

func (*DB) Managed

func (d *DB) Managed(writable bool, fn func(tx *TX) error) error

func (*DB) NewBucket

func (d *DB) NewBucket(name string) error

func (*DB) Prefix

func (d *DB) Prefix(prefix any, buckets ...string) ([][]byte, error)

func (*DB) Put

func (d *DB) Put(key, value any, buckets ...string) error

func (*DB) PutTTL

func (d *DB) PutTTL(key, value any, ttl uint64, buckets ...string) error

func (*DB) Range

func (d *DB) Range(start, end any, buckets ...string) ([][]byte, error)

func (*DB) Suffix

func (d *DB) Suffix(suffix any, buckets ...string) ([][]byte, error)

func (*DB) Update

func (d *DB) Update(fn func(tx *TX) error) error

func (*DB) View

func (d *DB) View(fn func(tx *TX) error) error

type Entry

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

func DecodeEntryHeader

func DecodeEntryHeader(buf []byte) *Entry

func NewEntry

func NewEntry(key, value []byte, bucket string, entryType uint16, ttl uint64) *Entry

func (*Entry) Crc32

func (e *Entry) Crc32(head []byte) uint32

func (*Entry) DataSize

func (e *Entry) DataSize() int64

func (*Entry) EncodeEntry

func (e *Entry) EncodeEntry() []byte

func (*Entry) IsExpired

func (e *Entry) IsExpired() bool

func (*Entry) Size

func (e *Entry) Size() int64

type Hint

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

func DecodeHintHeader

func DecodeHintHeader(buf []byte) *Hint

func NewHint

func NewHint(key []byte, offset uint32) *Hint

func (*Hint) EncodeHint

func (h *Hint) EncodeHint() []byte

func (*Hint) EncodeHintHeader

func (h *Hint) EncodeHintHeader() []byte

func (*Hint) Len

func (h *Hint) Len() int64

type LogLevel

type LogLevel uint8
const (
	DEBUG LogLevel = iota
	INFO
	WARNING
	ERROR
	FATAL
)

type LogMsg

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

type Logger

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

func NewLogger

func NewLogger(level LogLevel, method Method) (logger *Logger, err error)

func (Logger) Debug

func (logger Logger) Debug(format string, a ...interface{})

func (Logger) Error

func (logger Logger) Error(format string, a ...interface{})

func (Logger) Fatal

func (logger Logger) Fatal(format string, a ...interface{})

func (Logger) Info

func (logger Logger) Info(format string, a ...interface{})

func (Logger) Warning

func (logger Logger) Warning(format string, a ...interface{})

type Method

type Method func(string)

type Operator

type Operator struct{}

func (*Operator) Delete

func (o *Operator) Delete(key any, buckets ...string) error

func (*Operator) Get

func (o *Operator) Get(key any, buckets ...string) ([][]byte, error)

func (*Operator) GetDelete

func (o *Operator) GetDelete(key any, buckets ...string) ([][]byte, error)

func (*Operator) GetPut

func (o *Operator) GetPut(key, value any, buckets ...string) ([][]byte, error)

func (*Operator) Prefix

func (o *Operator) Prefix(prefix any, buckets ...string) ([][]byte, error)

func (*Operator) Put

func (o *Operator) Put(key, value any, buckets ...string) error

func (*Operator) PutTTL

func (o *Operator) PutTTL(key, value any, ttl uint64, buckets ...string) error

func (*Operator) Range

func (o *Operator) Range(start, end any, buckets ...string) ([][]byte, error)

func (*Operator) Suffix

func (o *Operator) Suffix(suffix any, buckets ...string) ([][]byte, error)

type Option

type Option struct {
	MaxMemoryUsage int64
	MaxRecordPreTx int
	DbPath         string
}

func DefaultOption

func DefaultOption() *Option

type Server

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

func NewServer

func NewServer(host string, port int, dbOpt *Option) (*Server, error)

func (*Server) Listen

func (s *Server) Listen() error

func (*Server) Stop

func (s *Server) Stop()

type TX

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

func (*TX) Close

func (t *TX) Close()

func (*TX) Commit

func (t *TX) Commit() error

func (*TX) Delete

func (t *TX) Delete(key any, buckets ...string) error

func (*TX) DeleteString

func (t *TX) DeleteString(key string) error

func (*TX) Get

func (t *TX) Get(key any, buckets ...string) ([][]byte, error)

func (*TX) GetDelete

func (t *TX) GetDelete(key any, buckets ...string) ([][]byte, error)

func (*TX) GetDeleteString

func (t *TX) GetDeleteString(key string) (string, error)

GetDeleteString 删除并获取key对应value

func (*TX) GetPut

func (t *TX) GetPut(key, value any, buckets ...string) ([][]byte, error)

func (*TX) GetPutString

func (t *TX) GetPutString(key, value string) (string, error)

func (*TX) GetString

func (t *TX) GetString(key string) (string, error)

func (*TX) Prefix

func (t *TX) Prefix(prefix any, buckets ...string) ([][]byte, error)

func (*TX) Put

func (t *TX) Put(key, value any, buckets ...string) error

func (*TX) PutString

func (t *TX) PutString(key, value string) error

func (*TX) PutTTL

func (t *TX) PutTTL(key, value any, ttl uint64, buckets ...string) error

func (*TX) PutTTLString

func (t *TX) PutTTLString(key, value string, ttl uint64) error

func (*TX) Range

func (t *TX) Range(start, end any, buckets ...string) ([][]byte, error)

func (*TX) RangeString

func (t *TX) RangeString(start, end string) ([]string, error)

func (*TX) Suffix

func (t *TX) Suffix(suffix any, buckets ...string) ([][]byte, error)

Jump to

Keyboard shortcuts

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