server

package
v0.0.0-...-a300240 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2021 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// TypeBlobString simple types
	TypeBlobString     = '$' // $<length>\r\n<bytes>\r\n
	TypeSimpleString   = '+' // +<string>\r\n
	TypeSimpleError    = '-' // -<string>\r\n
	TypeNumber         = ':' // :<number>\r\n
	TypeNull           = '_' // _\r\n
	TypeDouble         = ',' // ,<floating-point-number>\r\n
	TypeBoolean        = '#' // #t\r\n or #f\r\n
	TypeBlobError      = '!' // !<length>\r\n<bytes>\r\n
	TypeVerbatimString = '=' // =<length>\r\n<format(3 bytes):><bytes>\r\n
	TypeBigNumber      = '(' // (<big number>\n
	// TypeArray Aggregate data types
	TypeArray     = '*' // *<elements number>\r\n... numelements other types ...
	TypeMap       = '%' // %<elements number>\r\n... numelements key/value pair of other types ...
	TypeSet       = '~' // ~<elements number>\r\n... numelements other types ...
	TypeAttribute = '|' // |~<elements number>\r\n... numelements map type ...
	TypePush      = '>' // ><elements number>\r\n<first item is String>\r\n... numelements-1 other types ...
	// TypeStream special type
	TypeStream = "$EOF:" //
)

Variables

View Source
var CRLF = "\r\n"
View Source
var ErrInvalidSyntax = errors.New("resp:invalid syntax")

Functions

func Run

func Run()

初始化socket 端口监听 epoll 建立client连接 处理请求:解析命令 主线程执行命令 将结果返回给client

func ValueToRow

func ValueToRow(value *Value) []byte

Types

type AOFHandle

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

func NewAOFHandle

func NewAOFHandle() *AOFHandle

func (*AOFHandle) Flush

func (handle *AOFHandle) Flush()

func (*AOFHandle) ReadValue

func (handle *AOFHandle) ReadValue(offset int64) (*Value, error)

func (*AOFHandle) Write

func (handle *AOFHandle) Write(bytes []byte)

type Epoller

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

Epoller Epoller

func NewEpoller

func NewEpoller() (*Epoller, error)

NewEpoller new epoller

func (*Epoller) Add

func (epoller *Epoller) Add(conn net.Conn) error

func (*Epoller) Close

func (epoller *Epoller) Close() error

func (*Epoller) Remove

func (epoller *Epoller) Remove(conn net.Conn) error

func (*Epoller) Wait

func (epoller *Epoller) Wait() ([]net.Conn, error)

type Op

type Op uint32

Op op

type RedisReader

type RedisReader struct {
	*bufio.Reader
}

Reader struct

func NewRedisReader

func NewRedisReader(reader io.Reader) *RedisReader

NewRedisReader method

func (*RedisReader) ReadValue

func (r *RedisReader) ReadValue() (*Value, error)

ReadValue method

type RedisWriter

type RedisWriter struct {
	*bufio.Writer
}

func NewRedisWriter

func NewRedisWriter(writer io.Writer) *RedisWriter

type SyncList

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

func NewSyncList

func NewSyncList() *SyncList

func (*SyncList) Add

func (syncList *SyncList) Add(data interface{})

type Value

type Value struct {
	Type    byte
	Str     string
	Err     string
	Integer int64
	Boolean bool
	Double  float64
	BigInt  *big.Int
	Elems   []*Value // for array & set
	// KV           *linkedhashmap.Map
	// Attrs        *linkedhashmap.Map
	StreamMarker string

	Size int64
}

Jump to

Keyboard shortcuts

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