server

package
v0.0.0-...-d35789e Latest Latest
Warning

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

Go to latest
Published: May 10, 2020 License: MIT Imports: 37 Imported by: 3

Documentation

Overview

Package server supplies a way to use ledis as service. Server implements the redis protocol called RESP (REdis Serialization Protocol). For more information, please see http://redis.io/topics/protocol.

You can use ledis with many available redis clients directly, for example, redis-cli. But I also supply some ledis client at client folder, and have been adding more for other languages.

Usage

Start a ledis server is very simple:

cfg := config.NewConfigDefault()
cfg.Addr = "127.0.0.1:6380"
cfg.DataDir = "/tmp/ledis"
app := server.NewApp(cfg)
app.Run()

Replication

You can start a slave ledis server for replication, open slave is simple too, you can set slaveof in config or run slaveof command in shell.

For example, if you start a slave server, and the master server's address is 127.0.0.1:6380, you can start replication in shell:

ledis-cli -p 6381
ledis 127.0.0.1:6381 > slaveof 127.0.0.1 6380

After you send slaveof command, the slave will start to sync master's write ahead log and replicate from it. You must notice that use_replication must be set true if you want to use it.

HTTP Interface

LedisDB provides http interfaces for most commands(except the replication commands)

curl http://127.0.0.1:11181/SET/hello/world
→ {"SET":[true,"OK"]}

curl http://127.0.0.1:11181/0/GET/hello?type=json
→ {"GET":"world"}

Index

Constants

View Source
const (
	KV   ledis.DataType = ledis.KV
	LIST                = ledis.LIST
	HASH                = ledis.HASH
	SET                 = ledis.SET
	ZSET                = ledis.ZSET
)
View Source
const (
	KVName   = ledis.KVName
	ListName = ledis.ListName
	HashName = ledis.HashName
	SetName  = ledis.SetName
	ZSetName = ledis.ZSetName
)
View Source
const (
	GB uint64 = 1024 * 1024 * 1024
	MB uint64 = 1024 * 1024
	KB uint64 = 1024
)

Variables

View Source
var (
	ErrEmptyCommand          = errors.New("empty command")
	ErrNotFound              = errors.New("command not found")
	ErrNotAuthenticated      = errors.New("not authenticated")
	ErrAuthenticationFailure = errors.New("authentication failure")
	ErrCmdParams             = errors.New("invalid command param")
	ErrValue                 = errors.New("value is not an integer or out of range")
	ErrSyntax                = errors.New("syntax error")
	ErrOffset                = errors.New("offset bit is not an natural number")
	ErrBool                  = errors.New("value is not 0 or 1")
)
View Source
var (
	Delims = []byte("\r\n")

	NullBulk  = []byte("-1")
	NullArray = []byte("-1")

	PONG  = "PONG"
	OK    = "OK"
	NOKEY = "NOKEY"
)

Functions

This section is empty.

Types

type App

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

func NewApp

func NewApp(cfg *config.Config) (*App, error)

func (*App) Address

func (app *App) Address() string

func (*App) Close

func (app *App) Close()

func (*App) Ledis

func (app *App) Ledis() *ledis.Ledis

func (*App) Run

func (app *App) Run()

type CommandFunc

type CommandFunc func(c *client) error

Jump to

Keyboard shortcuts

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