Version: v0.0.0-...-d35789e Latest Latest

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



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

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.


Start a ledis server is very simple:

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


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, you can start replication in shell:

ledis-cli -p 6381
ledis > slaveof 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)

→ {"SET":[true,"OK"]}

→ {"GET":"world"}



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


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")

	OK    = "OK"


This section is empty.


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