Fix some lint error (#385)

* Fix some lint error

* Fix misspell

* Improve make lint
This commit is contained in:
Lunny Xiao 2020-05-10 18:17:39 +08:00 committed by GitHub
parent b08f85e6fb
commit 1ee5a02c6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 440 additions and 539 deletions

View File

@ -32,6 +32,13 @@ build-commands:
go build -mod=vendor -o $(DIST)/ledis-load -tags '$(GO_BUILD_TAGS)' -ldflags '-s -w $(LDFLAGS)' cmd/ledis-load/*.go
go build -mod=vendor -o $(DIST)/ledis-repair -tags '$(GO_BUILD_TAGS)' -ldflags '-s -w $(LDFLAGS)' cmd/ledis-repair/*.go
.PHONY: lint
lint:
@hash golint > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
cd /tmp && GO111MODULE=on go get -u -v golang.org/x/lint/golint; \
fi
golint $(PACKAGES)
vet:
go vet -mod=vendor -tags '$(GO_BUILD_TAGS)' ./...
@ -39,7 +46,7 @@ test:
go test -mod=vendor --race -tags '$(GO_BUILD_TAGS)' -cover -coverprofile coverage.out -timeout 10m $(PACKAGES)
clean:
go clean -i ./...
go clean -i $(PACKAGES)
fmt:
gofmt -w -s . 2>&1 | grep -vE 'vendor' | awk '{print} END{if(NR>0) {exit 1}}'

View File

@ -1,8 +1,8 @@
# LedisDB
[![Build Status](https://travis-ci.org/ledisdb/ledisdb.svg?branch=develop)](https://travis-ci.org/ledisdb/ledisdb) [![codecov](https://codecov.io/gh/ledisdb/ledisdb/branch/master/graph/badge.svg)](https://codecov.io/gh/ledisdb/ledisdb)
[![Build Status](https://travis-ci.org/ledisdb/ledisdb.svg?branch=develop)](https://travis-ci.org/ledisdb/ledisdb) [![codecov](https://codecov.io/gh/ledisdb/ledisdb/branch/master/graph/badge.svg)](https://codecov.io/gh/ledisdb/ledisdb) [![goreportcard](https://goreportcard.com/badge/github.com/ledisdb/ledisdb)](https://goreportcard.com/report/github.com/ledisdb/ledisdb)
Ledisdb is a high-performance NoSQL database, similar to Redis, written in [Go](http://golang.org/). It supports many data structures including kv, list, hash, zset, set.
Ledisdb is a high-performance NoSQL database library and server written in [Go](http://golang.org). It's similar to Redis but store data in disk. It supports many data structures including kv, list, hash, zset, set.
LedisDB now supports multiple different databases as backends.

View File

@ -250,7 +250,7 @@ var round = flag.Int("r", 1, "benchmark round number")
var valueSize = flag.Int("vsize", 100, "kv value size")
var tests = flag.String("t", "set,get,randget,del,lpush,lrange,lpop,hset,hget,hdel,zadd,zincr,zrange,zrevrange,zdel", "only run the comma separated list of tests")
func CmdBenchmark() {
func Benchmark() {
benchIP = flag.String("ip", "127.0.0.1", "redis/ledis/ssdb server ip")
number = flag.Int("n", 1000, "request number")
benchPort = flag.Int("port", 6380, "redis/ledis/ssdb server port")

View File

@ -1,4 +1,5 @@
//This file was generated by .tools/generate_commands.py on Sat Oct 28 2017 18:15:49 -0500
// Package cmd
// This file was generated by .tools/generate_commands.py on Sat Oct 28 2017 18:15:49 -0500
package cmd
import (
@ -164,7 +165,7 @@ var (
historyPath = "/tmp/ledis-cli"
)
func CmdCli() {
func Cli() {
var dbn = flag.Int("n", 0, "ledisdb database number(default 0)")
flag.Parse()

View File

@ -8,7 +8,7 @@ import (
"github.com/siddontang/goredis"
)
func CmdDump() {
func Dump() {
var host = flag.String("host", "127.0.0.1", "ledis server host")
var dumpPort = flag.Int("port", 6380, "ledis server port")
var sock = flag.String("sock", "", "ledis unix socket domain")

View File

@ -18,5 +18,5 @@ func main() {
}
fmt.Println()
cmd.CmdBenchmark()
cmd.Benchmark()
}

View File

@ -18,5 +18,5 @@ func main() {
}
fmt.Println()
cmd.CmdCli()
cmd.Cli()
}

View File

@ -18,5 +18,5 @@ func main() {
}
fmt.Println()
cmd.CmdDump()
cmd.Dump()
}

View File

@ -18,5 +18,5 @@ func main() {
}
fmt.Println()
cmd.CmdLoad()
cmd.Load()
}

View File

@ -18,5 +18,5 @@ func main() {
}
fmt.Println()
cmd.CmdRepair()
cmd.Repair()
}

View File

@ -3,6 +3,8 @@ package main
import (
"fmt"
_ "net/http/pprof"
"github.com/ledisdb/ledisdb/cmd"
)
@ -18,5 +20,5 @@ func main() {
}
fmt.Println()
cmd.CmdServer()
cmd.Server()
}

View File

@ -4,6 +4,8 @@ import (
"fmt"
"os"
_ "net/http/pprof"
"github.com/ledisdb/ledisdb/cmd"
)
@ -46,18 +48,18 @@ func main() {
switch subCmd {
case "repair":
cmd.CmdRepair()
cmd.Repair()
case "benchmark":
cmd.CmdBenchmark()
cmd.Benchmark()
case "cli":
cmd.CmdCli()
cmd.Cli()
case "dump":
cmd.CmdDump()
cmd.Dump()
case "help":
printSubCmds()
case "server":
fallthrough
default:
cmd.CmdServer()
cmd.Server()
}
}

View File

@ -7,7 +7,7 @@ import (
"github.com/ledisdb/ledisdb/ledis"
)
func CmdLoad() {
func Load() {
var configPath = flag.String("config", "", "ledisdb config file")
var dumpPath = flag.String("dump_file", "", "ledisdb dump file")

View File

@ -7,7 +7,7 @@ import (
"github.com/ledisdb/ledisdb/store"
)
func CmdRepair() {
func Repair() {
var fileName = flag.String("config", "", "ledisdb config file")
flag.Parse()

View File

@ -5,7 +5,6 @@ import (
"fmt"
"log"
"net/http"
_ "net/http/pprof"
"os"
"os/signal"
"runtime"
@ -28,7 +27,7 @@ var rplSync = flag.Bool("rpl_sync", false, "enable sync replication or not")
var ttlCheck = flag.Int("ttl_check", 0, "TTL check interval")
var databases = flag.Int("databases", 0, "ledisdb maximum database number")
func CmdServer() {
func Server() {
var configFile = flag.String("config", "", "ledisdb config file")
runtime.GOMAXPROCS(runtime.NumCPU())

View File

@ -197,7 +197,7 @@ func (db *DB) decodeScanKey(storeDataType byte, ek []byte) (key []byte, err erro
return
}
// for specail data scan
// for special data scan
func (db *DB) buildDataScanKeyRange(storeDataType byte, key []byte, cursor []byte, reverse bool) (minKey []byte, maxKey []byte, err error) {
if !reverse {
@ -232,7 +232,7 @@ func (db *DB) encodeDataScanMaxKey(storeDataType byte, key []byte, cursor []byte
return nil, err
}
// here, the last byte is the start seperator, set it to stop seperator
// here, the last byte is the start separator, set it to stop separator
k[len(k)-1] = k[len(k)-1] + 1
return k, nil
}

View File

@ -596,7 +596,7 @@ func (db *DB) SMclear(keys ...[]byte) (int64, error) {
return int64(len(keys)), err
}
// SExpire expries the set.
// SExpire expires the set.
func (db *DB) SExpire(key []byte, duration int64) (int64, error) {
if duration <= 0 {
return 0, errExpireValue

View File

@ -349,15 +349,13 @@ func (m *mmapReadFile) Name() string {
func newWriteFile(useMmap bool, name string, size int64) (writeFile, error) {
if useMmap {
return newMmapWriteFile(name, size)
} else {
return newRawWriteFile(name, size)
}
return newRawWriteFile(name, size)
}
func newReadFile(useMmap bool, name string) (readFile, error) {
if useMmap {
return newMmapReadFile(name)
} else {
return newRawReadFile(name)
}
return newRawReadFile(name)
}

View File

@ -211,8 +211,8 @@ func (t *tableReader) repair() error {
meta, err = newWriteFile(false, fmtTableMetaName(t.base, t.index), int64(defaultLogNumInFile*4))
var l Log
var pos int64 = 0
var nextPos int64 = 0
var pos int64
var nextPos int64
b := make([]byte, 4)
t.first = 0

View File

@ -126,10 +126,10 @@ func (r *Replication) Log(data []byte) (*Log, error) {
return nil, err
}
commitId := r.commitID
if lastID < commitId {
lastID = commitId
} else if lastID > commitId {
commitID := r.commitID
if lastID < commitID {
lastID = commitID
} else if lastID > commitID {
r.m.Unlock()
return nil, ErrCommitIDBehind
}

View File

@ -10,12 +10,11 @@ func hsetCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.HSet(args[0], args[1], args[2]); err != nil {
n, err := c.db.HSet(args[0], args[1], args[2])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -25,12 +24,11 @@ func hgetCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.HGet(args[0], args[1]); err != nil {
v, err := c.db.HGet(args[0], args[1])
if err != nil {
return err
} else {
c.resp.writeBulk(v)
}
c.resp.writeBulk(v)
return nil
}
@ -41,15 +39,15 @@ func hexistsCommand(c *client) error {
}
var n int64 = 1
if v, err := c.db.HGet(args[0], args[1]); err != nil {
v, err := c.db.HGet(args[0], args[1])
if err != nil {
return err
} else {
if v == nil {
n = 0
}
c.resp.writeInteger(n)
}
if v == nil {
n = 0
}
c.resp.writeInteger(n)
return nil
}
@ -59,12 +57,11 @@ func hdelCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.HDel(args[0], args[1:]...); err != nil {
n, err := c.db.HDel(args[0], args[1:]...)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -74,12 +71,11 @@ func hlenCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.HLen(args[0]); err != nil {
n, err := c.db.HLen(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -94,12 +90,11 @@ func hincrbyCommand(c *client) error {
return ErrValue
}
var n int64
if n, err = c.db.HIncrBy(args[0], args[1], delta); err != nil {
n, err := c.db.HIncrBy(args[0], args[1], delta)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -125,10 +120,8 @@ func hmsetCommand(c *client) error {
if err := c.db.HMset(key, kvs...); err != nil {
return err
} else {
c.resp.writeStatus(OK)
}
c.resp.writeStatus(OK)
return nil
}
@ -138,12 +131,11 @@ func hmgetCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.HMget(args[0], args[1:]...); err != nil {
v, err := c.db.HMget(args[0], args[1:]...)
if err != nil {
return err
} else {
c.resp.writeSliceArray(v)
}
c.resp.writeSliceArray(v)
return nil
}
@ -153,12 +145,11 @@ func hgetallCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.HGetAll(args[0]); err != nil {
v, err := c.db.HGetAll(args[0])
if err != nil {
return err
} else {
c.resp.writeFVPairArray(v)
}
c.resp.writeFVPairArray(v)
return nil
}
@ -168,12 +159,11 @@ func hkeysCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.HKeys(args[0]); err != nil {
v, err := c.db.HKeys(args[0])
if err != nil {
return err
} else {
c.resp.writeSliceArray(v)
}
c.resp.writeSliceArray(v)
return nil
}
@ -183,12 +173,11 @@ func hvalsCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.HValues(args[0]); err != nil {
v, err := c.db.HValues(args[0])
if err != nil {
return err
} else {
c.resp.writeSliceArray(v)
}
c.resp.writeSliceArray(v)
return nil
}
@ -198,12 +187,11 @@ func hclearCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.HClear(args[0]); err != nil {
n, err := c.db.HClear(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -213,12 +201,11 @@ func hmclearCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.HMclear(args...); err != nil {
n, err := c.db.HMclear(args...)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -233,12 +220,11 @@ func hexpireCommand(c *client) error {
return ErrValue
}
if v, err := c.db.HExpire(args[0], duration); err != nil {
v, err := c.db.HExpire(args[0], duration)
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -253,12 +239,11 @@ func hexpireAtCommand(c *client) error {
return ErrValue
}
if v, err := c.db.HExpireAt(args[0], when); err != nil {
v, err := c.db.HExpireAt(args[0], when)
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -268,12 +253,11 @@ func httlCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.HTTL(args[0]); err != nil {
v, err := c.db.HTTL(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -283,12 +267,11 @@ func hpersistCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.HPersist(args[0]); err != nil {
n, err := c.db.HPersist(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -297,11 +280,11 @@ func hkeyexistsCommand(c *client) error {
if len(args) != 1 {
return ErrCmdParams
}
if n, err := c.db.HKeyExists(args[0]); err != nil {
n, err := c.db.HKeyExists(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}

View File

@ -28,13 +28,11 @@ func getCommand(c *client) error {
if v, err := c.db.GetSlice(args[0]); err != nil {
return err
} else if v == nil {
c.resp.writeBulk(nil)
} else {
if v == nil {
c.resp.writeBulk(nil)
} else {
c.resp.writeBulk(v.Data())
v.Free()
}
c.resp.writeBulk(v.Data())
v.Free()
}
return nil
}
@ -47,10 +45,8 @@ func setCommand(c *client) error {
if err := c.db.Set(args[0], args[1]); err != nil {
return err
} else {
c.resp.writeStatus(OK)
}
c.resp.writeStatus(OK)
return nil
}
@ -60,12 +56,11 @@ func getsetCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.GetSet(args[0], args[1]); err != nil {
v, err := c.db.GetSet(args[0], args[1])
if err != nil {
return err
} else {
c.resp.writeBulk(v)
}
c.resp.writeBulk(v)
return nil
}
@ -75,12 +70,11 @@ func setnxCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.SetNX(args[0], args[1]); err != nil {
n, err := c.db.SetNX(args[0], args[1])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -97,10 +91,8 @@ func setexCommand(c *client) error {
if err := c.db.SetEX(args[0], sec, args[2]); err != nil {
return err
} else {
c.resp.writeStatus(OK)
}
c.resp.writeStatus(OK)
return nil
}
@ -110,12 +102,11 @@ func existsCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.Exists(args[0]); err != nil {
n, err := c.db.Exists(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -125,12 +116,11 @@ func incrCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.Incr(c.args[0]); err != nil {
n, err := c.db.Incr(c.args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -140,12 +130,11 @@ func decrCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.Decr(c.args[0]); err != nil {
n, err := c.db.Decr(c.args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -160,12 +149,11 @@ func incrbyCommand(c *client) error {
return ErrValue
}
if n, err := c.db.IncrBy(c.args[0], delta); err != nil {
n, err := c.db.IncrBy(c.args[0], delta)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -180,12 +168,11 @@ func decrbyCommand(c *client) error {
return ErrValue
}
if n, err := c.db.DecrBy(c.args[0], delta); err != nil {
n, err := c.db.DecrBy(c.args[0], delta)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -195,12 +182,11 @@ func delCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.Del(args...); err != nil {
n, err := c.db.Del(args...)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -218,10 +204,8 @@ func msetCommand(c *client) error {
if err := c.db.MSet(kvs...); err != nil {
return err
} else {
c.resp.writeStatus(OK)
}
c.resp.writeStatus(OK)
return nil
}
@ -235,12 +219,11 @@ func mgetCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.MGet(args...); err != nil {
v, err := c.db.MGet(args...)
if err != nil {
return err
} else {
c.resp.writeSliceArray(v)
}
c.resp.writeSliceArray(v)
return nil
}
@ -255,12 +238,11 @@ func expireCommand(c *client) error {
return ErrValue
}
if v, err := c.db.Expire(args[0], duration); err != nil {
v, err := c.db.Expire(args[0], duration)
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -275,12 +257,11 @@ func expireAtCommand(c *client) error {
return ErrValue
}
if v, err := c.db.ExpireAt(args[0], when); err != nil {
v, err := c.db.ExpireAt(args[0], when)
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -290,12 +271,11 @@ func ttlCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.TTL(args[0]); err != nil {
v, err := c.db.TTL(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -305,12 +285,11 @@ func persistCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.Persist(args[0]); err != nil {
n, err := c.db.Persist(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -320,11 +299,11 @@ func appendCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.Append(args[0], args[1]); err != nil {
n, err := c.db.Append(args[0], args[1])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -345,12 +324,11 @@ func getrangeCommand(c *client) error {
return err
}
if v, err := c.db.GetRange(key, start, end); err != nil {
v, err := c.db.GetRange(key, start, end)
if err != nil {
return err
} else {
c.resp.writeBulk(v)
}
c.resp.writeBulk(v)
return nil
}
@ -369,11 +347,11 @@ func setrangeCommand(c *client) error {
value := args[2]
if n, err := c.db.SetRange(key, offset, value); err != nil {
n, err := c.db.SetRange(key, offset, value)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -382,11 +360,11 @@ func strlenCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.StrLen(c.args[0]); err != nil {
n, err := c.db.StrLen(c.args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -419,11 +397,11 @@ func bitcountCommand(c *client) error {
return err
}
if n, err := c.db.BitCount(key, start, end); err != nil {
n, err := c.db.BitCount(key, start, end)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -437,12 +415,11 @@ func bitopCommand(c *client) error {
destKey := args[1]
srcKeys := args[2:]
if n, err := c.db.BitOP(op, destKey, srcKeys...); err != nil {
n, err := c.db.BitOP(op, destKey, srcKeys...)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -462,11 +439,11 @@ func bitposCommand(c *client) error {
return err
}
if n, err := c.db.BitPos(key, bit, start, end); err != nil {
n, err := c.db.BitPos(key, bit, start, end)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -482,11 +459,11 @@ func getbitCommand(c *client) error {
return err
}
if n, err := c.db.GetBit(key, offset); err != nil {
n, err := c.db.GetBit(key, offset)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -507,11 +484,11 @@ func setbitCommand(c *client) error {
return err
}
if n, err := c.db.SetBit(key, offset, value); err != nil {
n, err := c.db.SetBit(key, offset, value)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}

View File

@ -16,12 +16,11 @@ func lpushCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.LPush(args[0], args[1:]...); err != nil {
n, err := c.db.LPush(args[0], args[1:]...)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -31,12 +30,11 @@ func rpushCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.RPush(args[0], args[1:]...); err != nil {
n, err := c.db.RPush(args[0], args[1:]...)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -46,12 +44,11 @@ func lpopCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.LPop(args[0]); err != nil {
v, err := c.db.LPop(args[0])
if err != nil {
return err
} else {
c.resp.writeBulk(v)
}
c.resp.writeBulk(v)
return nil
}
@ -61,12 +58,11 @@ func rpopCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.RPop(args[0]); err != nil {
v, err := c.db.RPop(args[0])
if err != nil {
return err
} else {
c.resp.writeBulk(v)
}
c.resp.writeBulk(v)
return nil
}
@ -76,12 +72,11 @@ func llenCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.LLen(args[0]); err != nil {
n, err := c.db.LLen(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -96,12 +91,11 @@ func lindexCommand(c *client) error {
return ErrValue
}
if v, err := c.db.LIndex(args[0], int32(index)); err != nil {
v, err := c.db.LIndex(args[0], int32(index))
if err != nil {
return err
} else {
c.resp.writeBulk(v)
}
c.resp.writeBulk(v)
return nil
}
@ -125,12 +119,11 @@ func lrangeCommand(c *client) error {
return ErrValue
}
if v, err := c.db.LRange(args[0], int32(start), int32(stop)); err != nil {
v, err := c.db.LRange(args[0], int32(start), int32(stop))
if err != nil {
return err
} else {
c.resp.writeSliceArray(v)
}
c.resp.writeSliceArray(v)
return nil
}
@ -158,12 +151,11 @@ func lclearCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.LClear(args[0]); err != nil {
n, err := c.db.LClear(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -173,12 +165,11 @@ func lmclearCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.LMclear(args...); err != nil {
n, err := c.db.LMclear(args...)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -193,12 +184,11 @@ func lexpireCommand(c *client) error {
return ErrValue
}
if v, err := c.db.LExpire(args[0], duration); err != nil {
v, err := c.db.LExpire(args[0], duration)
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -213,12 +203,11 @@ func lexpireAtCommand(c *client) error {
return ErrValue
}
if v, err := c.db.LExpireAt(args[0], when); err != nil {
v, err := c.db.LExpireAt(args[0], when)
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -228,12 +217,11 @@ func lttlCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.LTTL(args[0]); err != nil {
v, err := c.db.LTTL(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -243,12 +231,11 @@ func lpersistCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.LPersist(args[0]); err != nil {
n, err := c.db.LPersist(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -258,11 +245,11 @@ func blpopCommand(c *client) error {
return err
}
if ay, err := c.db.BLPop(keys, timeout); err != nil {
ay, err := c.db.BLPop(keys, timeout)
if err != nil {
return err
} else {
c.resp.writeArray(ay)
}
c.resp.writeArray(ay)
return nil
}
@ -272,11 +259,11 @@ func brpopCommand(c *client) error {
return err
}
if ay, err := c.db.BRPop(keys, timeout); err != nil {
ay, err := c.db.BRPop(keys, timeout)
if err != nil {
return err
} else {
c.resp.writeArray(ay)
}
c.resp.writeArray(ay)
return nil
}
@ -408,11 +395,11 @@ func lkeyexistsCommand(c *client) error {
if len(args) != 1 {
return ErrCmdParams
}
if n, err := c.db.LKeyExists(args[0]); err != nil {
n, err := c.db.LKeyExists(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -437,10 +424,8 @@ func lTrimCommand(c *client) error {
if err := c.db.LTrim(args[0], start, stop); err != nil {
return err
} else {
c.resp.writeStatus(OK)
}
c.resp.writeStatus(OK)
return nil
}
@ -458,12 +443,11 @@ func lTrimFrontCommand(c *client) error {
return ErrValue
}
if n, err := c.db.LTrimFront(args[0], trimSize); err != nil {
n, err := c.db.LTrimFront(args[0], trimSize)
if err != nil {
return err
} else {
c.resp.writeInteger(int64(n))
}
c.resp.writeInteger(int64(n))
return nil
}
@ -481,12 +465,11 @@ func lTrimBackCommand(c *client) error {
return ErrValue
}
if n, err := c.db.LTrimBack(args[0], trimSize); err != nil {
n, err := c.db.LTrimBack(args[0], trimSize)
if err != nil {
return err
} else {
c.resp.writeInteger(int64(n))
}
c.resp.writeInteger(int64(n))
return nil
}

View File

@ -19,12 +19,11 @@ func dumpCommand(c *client) error {
}
key := c.args[0]
if data, err := c.db.Dump(key); err != nil {
data, err := c.db.Dump(key)
if err != nil {
return err
} else {
c.resp.writeBulk(data)
}
c.resp.writeBulk(data)
return nil
}
@ -34,12 +33,11 @@ func ldumpCommand(c *client) error {
}
key := c.args[0]
if data, err := c.db.LDump(key); err != nil {
data, err := c.db.LDump(key)
if err != nil {
return err
} else {
c.resp.writeBulk(data)
}
c.resp.writeBulk(data)
return nil
}
@ -49,12 +47,11 @@ func hdumpCommand(c *client) error {
}
key := c.args[0]
if data, err := c.db.HDump(key); err != nil {
data, err := c.db.HDump(key)
if err != nil {
return err
} else {
c.resp.writeBulk(data)
}
c.resp.writeBulk(data)
return nil
}
@ -64,12 +61,11 @@ func sdumpCommand(c *client) error {
}
key := c.args[0]
if data, err := c.db.SDump(key); err != nil {
data, err := c.db.SDump(key)
if err != nil {
return err
} else {
c.resp.writeBulk(data)
}
c.resp.writeBulk(data)
return nil
}
@ -79,12 +75,11 @@ func zdumpCommand(c *client) error {
}
key := c.args[0]
if data, err := c.db.ZDump(key); err != nil {
data, err := c.db.ZDump(key)
if err != nil {
return err
} else {
c.resp.writeBulk(data)
}
c.resp.writeBulk(data)
return nil
}
@ -104,10 +99,8 @@ func restoreCommand(c *client) error {
if err = c.db.Restore(key, ttl, data); err != nil {
return err
} else {
c.resp.writeStatus(OK)
}
c.resp.writeStatus(OK)
return nil
}
@ -128,12 +121,11 @@ func xrestoreCommand(c *client) error {
if err = c.db.Restore(key, ttl, data); err != nil {
return err
} else {
c.resp.writeStatus(OK)
}
c.resp.writeStatus(OK)
return nil
}
func xdump(db *ledis.DB, tp string, key []byte) ([]byte, error) {
var err error
var data []byte
@ -216,11 +208,11 @@ func xdumpCommand(c *client) error {
tp := strings.ToUpper(string(args[0]))
key := args[1]
if data, err := xdump(c.db, tp, key); err != nil {
data, err := xdump(c.db, tp, key)
if err != nil {
return err
} else {
c.resp.writeBulk(data)
}
c.resp.writeBulk(data)
return nil
}
@ -272,18 +264,18 @@ func newMigrateKeyLocker() *migrateKeyLocker {
return m
}
func (a *App) newMigrateKeyLockers() {
a.migrateKeyLockers = make(map[string]*migrateKeyLocker)
func (app *App) newMigrateKeyLockers() {
app.migrateKeyLockers = make(map[string]*migrateKeyLocker)
a.migrateKeyLockers[KVName] = newMigrateKeyLocker()
a.migrateKeyLockers[HashName] = newMigrateKeyLocker()
a.migrateKeyLockers[ListName] = newMigrateKeyLocker()
a.migrateKeyLockers[SetName] = newMigrateKeyLocker()
a.migrateKeyLockers[ZSetName] = newMigrateKeyLocker()
app.migrateKeyLockers[KVName] = newMigrateKeyLocker()
app.migrateKeyLockers[HashName] = newMigrateKeyLocker()
app.migrateKeyLockers[ListName] = newMigrateKeyLocker()
app.migrateKeyLockers[SetName] = newMigrateKeyLocker()
app.migrateKeyLockers[ZSetName] = newMigrateKeyLocker()
}
func (a *App) migrateKeyLock(tp string, key []byte) bool {
l, ok := a.migrateKeyLockers[strings.ToUpper(tp)]
func (app *App) migrateKeyLock(tp string, key []byte) bool {
l, ok := app.migrateKeyLockers[strings.ToUpper(tp)]
if !ok {
return false
}
@ -291,8 +283,8 @@ func (a *App) migrateKeyLock(tp string, key []byte) bool {
return l.Lock(key)
}
func (a *App) migrateKeyUnlock(tp string, key []byte) {
l, ok := a.migrateKeyLockers[strings.ToUpper(tp)]
func (app *App) migrateKeyUnlock(tp string, key []byte) {
l, ok := app.migrateKeyLockers[strings.ToUpper(tp)]
if !ok {
return
}
@ -438,9 +430,8 @@ func xmigrateCommand(c *client) error {
if err == errNoKey {
c.resp.writeStatus(NOKEY)
return nil
} else {
return err
}
return err
}
c.resp.writeStatus(OK)

View File

@ -52,15 +52,15 @@ func testDumpRestore(c *goredis.PoolConn, dump string, key string, t *testing.T)
}
func TestMigrate(t *testing.T) {
data_dir := "/tmp/test_migrate"
os.RemoveAll(data_dir)
dataDir := "/tmp/test_migrate"
os.RemoveAll(dataDir)
s1Cfg := config.NewConfigDefault()
s1Cfg.DataDir = fmt.Sprintf("%s/s1", data_dir)
s1Cfg.DataDir = fmt.Sprintf("%s/s1", dataDir)
s1Cfg.Addr = "127.0.0.1:11185"
s2Cfg := config.NewConfigDefault()
s2Cfg.DataDir = fmt.Sprintf("%s/s2", data_dir)
s2Cfg.DataDir = fmt.Sprintf("%s/s2", dataDir)
s2Cfg.Addr = "127.0.0.1:11186"
s1, err := NewApp(s1Cfg)

View File

@ -104,14 +104,14 @@ func syncCommand(c *client) error {
return ErrCmdParams
}
var logId uint64
var logID uint64
var err error
if logId, err = ledis.StrUint64(args[0], nil); err != nil {
if logID, err = ledis.StrUint64(args[0], nil); err != nil {
return ErrCmdParams
}
lastLogID := logId - 1
lastLogID := logID - 1
stat, err := c.app.ldb.ReplicationStat()
if err != nil {
@ -119,7 +119,7 @@ func syncCommand(c *client) error {
}
if lastLogID > stat.LastID {
return fmt.Errorf("invalid sync logid %d > %d + 1", logId, stat.LastID)
return fmt.Errorf("invalid sync logid %d > %d + 1", logID, stat.LastID)
}
c.lastLogID.Set(lastLogID)
@ -132,21 +132,20 @@ func syncCommand(c *client) error {
c.syncBuf.Write(dummyBuf)
if _, _, err := c.app.ldb.ReadLogsToTimeout(logId, &c.syncBuf, 1, c.app.quit); err != nil {
if _, _, err := c.app.ldb.ReadLogsToTimeout(logID, &c.syncBuf, 1, c.app.quit); err != nil {
return err
} else {
buf := c.syncBuf.Bytes()
stat, err = c.app.ldb.ReplicationStat()
if err != nil {
return err
}
binary.BigEndian.PutUint64(buf, stat.LastID)
c.resp.writeBulk(buf)
}
buf := c.syncBuf.Bytes()
stat, err = c.app.ldb.ReplicationStat()
if err != nil {
return err
}
binary.BigEndian.PutUint64(buf, stat.LastID)
c.resp.writeBulk(buf)
return nil
}
@ -171,11 +170,11 @@ func replconfCommand(c *client) error {
if _, err = num.ParseUint16(hack.String(args[i+1])); err != nil {
return err
}
if host, _, err = net.SplitHostPort(c.remoteAddr); err != nil {
host, _, err = net.SplitHostPort(c.remoteAddr)
if err != nil {
return err
} else {
c.slaveListeningAddr = net.JoinHostPort(host, hack.String(args[i+1]))
}
c.slaveListeningAddr = net.JoinHostPort(host, hack.String(args[i+1]))
c.app.addSlave(c)
default:
@ -200,16 +199,16 @@ func roleCommand(c *client) error {
ay := make([]interface{}, 0, 5)
var lastId int64 = 0
var lastID int64 = 0
stat, _ := c.app.ldb.ReplicationStat()
if stat != nil {
lastId = int64(stat.LastID)
lastID = int64(stat.LastID)
}
if isMaster {
ay = append(ay, []byte("master"))
ay = append(ay, lastId)
ay = append(ay, lastID)
items := make([]interface{}, 0, 3)
@ -229,7 +228,7 @@ func roleCommand(c *client) error {
ay = append(ay, []byte(host))
ay = append(ay, int64(port))
ay = append(ay, []byte(replStatetring(c.app.m.state.Get())))
ay = append(ay, lastId)
ay = append(ay, lastID)
}
c.resp.writeArray(ay)

View File

@ -36,11 +36,11 @@ func checkDataEqual(master *App, slave *App) error {
}
func TestReplication(t *testing.T) {
data_dir := "/tmp/test_replication"
os.RemoveAll(data_dir)
dataDir := "/tmp/test_replication"
os.RemoveAll(dataDir)
masterCfg := config.NewConfigDefault()
masterCfg.DataDir = fmt.Sprintf("%s/master", data_dir)
masterCfg.DataDir = fmt.Sprintf("%s/master", dataDir)
masterCfg.Addr = "127.0.0.1:11182"
masterCfg.UseReplication = true
masterCfg.Replication.Sync = true
@ -56,7 +56,7 @@ func TestReplication(t *testing.T) {
defer master.Close()
slaveCfg := config.NewConfigDefault()
slaveCfg.DataDir = fmt.Sprintf("%s/slave", data_dir)
slaveCfg.DataDir = fmt.Sprintf("%s/slave", dataDir)
slaveCfg.Addr = "127.0.0.1:11183"
slaveCfg.SlaveOf = masterCfg.Addr
slaveCfg.UseReplication = true

View File

@ -34,10 +34,9 @@ func authCommand(c *client) error {
c.isAuthed = true
c.resp.writeStatus(OK)
return nil
} else {
c.isAuthed = false
return ErrAuthenticationFailure
}
c.isAuthed = false
return ErrAuthenticationFailure
}
func echoCommand(c *client) error {
@ -54,31 +53,30 @@ func selectCommand(c *client) error {
return ErrCmdParams
}
if index, err := strconv.Atoi(hack.String(c.args[0])); err != nil {
index, err := strconv.Atoi(hack.String(c.args[0]))
if err != nil {
return err
} else {
// if c.db.IsInMulti() {
// if err := c.script.Select(index); err != nil {
// return err
// } else {
// c.db = c.script.DB
// }
// } else {
// if db, err := c.ldb.Select(index); err != nil {
// return err
// } else {
// c.db = db
// }
// }
if db, err := c.ldb.Select(index); err != nil {
return err
} else {
c.db = db
}
c.resp.writeStatus(OK)
}
// if c.db.IsInMulti() {
// if err := c.script.Select(index); err != nil {
// return err
// } else {
// c.db = c.script.DB
// }
// } else {
// if db, err := c.ldb.Select(index); err != nil {
// return err
// } else {
// c.db = db
// }
// }
db, err := c.ldb.Select(index)
if err != nil {
return err
}
c.db = db
c.resp.writeStatus(OK)
return nil
}
@ -170,10 +168,9 @@ func configCommand(c *client) error {
case "rewrite":
if err := c.app.cfg.Rewrite(); err != nil {
return err
} else {
c.resp.writeStatus(OK)
return nil
}
c.resp.writeStatus(OK)
return nil
case "get":
return configGetCommand(c)
default:

View File

@ -10,12 +10,11 @@ func saddCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.SAdd(args[0], args[1:]...); err != nil {
n, err := c.db.SAdd(args[0], args[1:]...)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -39,10 +38,8 @@ func soptGeneric(c *client, optType byte) error {
if err != nil {
return err
} else {
c.resp.writeSliceArray(v)
}
c.resp.writeSliceArray(v)
return nil
}
@ -67,10 +64,8 @@ func soptStoreGeneric(c *client, optType byte) error {
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -80,12 +75,11 @@ func scardCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.SCard(args[0]); err != nil {
n, err := c.db.SCard(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -112,12 +106,11 @@ func sismemberCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.SIsMember(args[0], args[1]); err != nil {
n, err := c.db.SIsMember(args[0], args[1])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -127,12 +120,11 @@ func smembersCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.SMembers(args[0]); err != nil {
v, err := c.db.SMembers(args[0])
if err != nil {
return err
} else {
c.resp.writeSliceArray(v)
}
c.resp.writeSliceArray(v)
return nil
}
@ -143,12 +135,11 @@ func sremCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.SRem(args[0], args[1:]...); err != nil {
n, err := c.db.SRem(args[0], args[1:]...)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -167,12 +158,11 @@ func sclearCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.SClear(args[0]); err != nil {
n, err := c.db.SClear(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -182,12 +172,11 @@ func smclearCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.SMclear(args...); err != nil {
n, err := c.db.SMclear(args...)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -202,12 +191,11 @@ func sexpireCommand(c *client) error {
return ErrValue
}
if v, err := c.db.SExpire(args[0], duration); err != nil {
v, err := c.db.SExpire(args[0], duration)
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -222,12 +210,11 @@ func sexpireAtCommand(c *client) error {
return ErrValue
}
if v, err := c.db.SExpireAt(args[0], when); err != nil {
v, err := c.db.SExpireAt(args[0], when)
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -237,12 +224,11 @@ func sttlCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.STTL(args[0]); err != nil {
v, err := c.db.STTL(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -253,12 +239,11 @@ func spersistCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.SPersist(args[0]); err != nil {
n, err := c.db.SPersist(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -267,11 +252,11 @@ func skeyexistsCommand(c *client) error {
if len(args) != 1 {
return ErrCmdParams
}
if n, err := c.db.SKeyExists(args[0]); err != nil {
n, err := c.db.SKeyExists(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}

View File

@ -102,11 +102,11 @@ func handleXSort(c *client, tp string) error {
return err
}
if n, err := c.db.RPush(storeKey, ay...); err != nil {
n, err := c.db.RPush(storeKey, ay...)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
}
return nil
}

View File

@ -55,12 +55,11 @@ func zcardCommand(c *client) error {
return ErrCmdParams
}
if n, err := c.db.ZCard(args[0]); err != nil {
n, err := c.db.ZCard(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -206,12 +205,11 @@ func zcountCommand(c *client) error {
return nil
}
if n, err := c.db.ZCount(args[0], min, max); err != nil {
n, err := c.db.ZCount(args[0], min, max)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -263,7 +261,6 @@ func zremrangebyrankCommand(c *client) error {
}
n, err := c.db.ZRemRangeByRank(key, start, stop)
if err == nil {
c.resp.writeInteger(n)
}
@ -331,11 +328,11 @@ func zrangeGeneric(c *client, reverse bool) error {
}
}
if datas, err := c.db.ZRangeGeneric(key, start, stop, reverse); err != nil {
datas, err := c.db.ZRangeGeneric(key, start, stop, reverse)
if err != nil {
return err
} else {
c.resp.writeScorePairArray(datas, withScores)
}
c.resp.writeScorePairArray(datas, withScores)
return nil
}
@ -408,12 +405,11 @@ func zrangebyscoreGeneric(c *client, reverse bool) error {
return nil
}
if datas, err := c.db.ZRangeByScoreGeneric(key, min, max, offset, count, reverse); err != nil {
datas, err := c.db.ZRangeByScoreGeneric(key, min, max, offset, count, reverse)
if err != nil {
return err
} else {
c.resp.writeScorePairArray(datas, withScores)
}
c.resp.writeScorePairArray(datas, withScores)
return nil
}
@ -501,12 +497,11 @@ func zttlCommand(c *client) error {
return ErrCmdParams
}
if v, err := c.db.ZTTL(args[0]); err != nil {
v, err := c.db.ZTTL(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(v)
}
c.resp.writeInteger(v)
return nil
}
@ -713,12 +708,11 @@ func zrangebylexCommand(c *client) error {
}
key := args[0]
if ay, err := c.db.ZRangeByLex(key, min, max, rangeType, offset, count); err != nil {
ay, err := c.db.ZRangeByLex(key, min, max, rangeType, offset, count)
if err != nil {
return err
} else {
c.resp.writeSliceArray(ay)
}
c.resp.writeSliceArray(ay)
return nil
}
@ -734,12 +728,11 @@ func zremrangebylexCommand(c *client) error {
}
key := args[0]
if n, err := c.db.ZRemRangeByLex(key, min, max, rangeType); err != nil {
n, err := c.db.ZRemRangeByLex(key, min, max, rangeType)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -755,12 +748,11 @@ func zlexcountCommand(c *client) error {
}
key := args[0]
if n, err := c.db.ZLexCount(key, min, max, rangeType); err != nil {
n, err := c.db.ZLexCount(key, min, max, rangeType)
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}
@ -769,11 +761,11 @@ func zkeyexistsCommand(c *client) error {
if len(args) != 1 {
return ErrCmdParams
}
if n, err := c.db.ZKeyExists(args[0]); err != nil {
n, err := c.db.ZKeyExists(args[0])
if err != nil {
return err
} else {
c.resp.writeInteger(n)
}
c.resp.writeInteger(n)
return nil
}

View File

@ -21,7 +21,7 @@ type info struct {
Server struct {
OS string
ProceessId int
ProceessID int
}
Replication struct {
@ -39,7 +39,7 @@ func newInfo(app *App) (i *info, err error) {
i.app = app
i.Server.OS = runtime.GOOS
i.Server.ProceessId = os.Getpid()
i.Server.ProceessID = os.Getpid()
return i, nil
}
@ -103,7 +103,7 @@ func (i *info) dumpServer(buf *bytes.Buffer) {
buf.WriteString("# Server\r\n")
i.dumpPairs(buf, infoPair{"os", i.Server.OS},
infoPair{"process_id", i.Server.ProceessId},
infoPair{"process_id", i.Server.ProceessID},
infoPair{"addr", i.app.cfg.Addr},
infoPair{"http_addr", i.app.cfg.HttpAddr},
infoPair{"readonly", i.app.cfg.Readonly},

View File

@ -298,9 +298,8 @@ func (m *master) nextSyncLogID() (uint64, error) {
if s.LastID > s.CommitID {
return s.LastID + 1, nil
} else {
return s.CommitID + 1, nil
}
return s.CommitID + 1, nil
}
func (m *master) sync() error {
@ -321,9 +320,8 @@ func (m *master) sync() error {
if err = m.conn.ReceiveBulkTo(&m.syncBuf); err != nil {
if strings.Contains(err.Error(), ledis.ErrLogMissed.Error()) {
return m.fullSync()
} else {
return err
}
return err
}
m.state.Set(replConnectedState)
@ -393,9 +391,8 @@ func (app *App) tryReSlaveof() error {
if len(app.cfg.SlaveOf) == 0 {
return nil
} else {
return app.m.startReplication(app.cfg.SlaveOf, true)
}
return app.m.startReplication(app.cfg.SlaveOf, true)
}
func (app *App) addSlave(c *client) {
@ -459,14 +456,14 @@ func (app *App) publishNewLog(l *rpl.Log) {
}
n := 0
logId := l.ID
logID := l.ID
for _, s := range app.slaves {
lastLogID := s.lastLogID.Get()
if lastLogID == logId {
if lastLogID == logID {
//slave has already owned this log
n++
} else if lastLogID > logId {
log.Errorf("invalid slave %s, lastlogid %d > %d", s.slaveListeningAddr, lastLogID, logId)
} else if lastLogID > logID {
log.Errorf("invalid slave %s, lastlogid %d > %d", s.slaveListeningAddr, lastLogID, logID)
}
}
@ -483,8 +480,8 @@ func (app *App) publishNewLog(l *rpl.Log) {
n := 0
for i := 0; i < slaveNum; i++ {
id := <-app.slaveSyncAck
if id < logId {
log.Infof("some slave may close with last logid %d < %d", id, logId)
if id < logID {
log.Infof("some slave may close with last logid %d < %d", id, logID)
} else {
n++
if n >= total {

View File

@ -52,11 +52,8 @@ func (db *DB) Put(key []byte, value []byte) error {
if db.needSyncCommit() {
return db.db.SyncPut(key, value)
} else {
return db.db.Put(key, value)
}
return db.db.Put(key, value)
}
func (db *DB) Delete(key []byte) error {
@ -64,9 +61,8 @@ func (db *DB) Delete(key []byte) error {
if db.needSyncCommit() {
return db.db.SyncDelete(key)
} else {
return db.db.Delete(key)
}
return db.db.Delete(key)
}
func (db *DB) NewWriteBatch() *WriteBatch {
@ -110,14 +106,14 @@ func (db *DB) RevRangeIterator(min []byte, max []byte, rangeType uint8) *RangeLi
return NewRevRangeLimitIterator(db.NewIterator(), &Range{min, max, rangeType}, &Limit{0, -1})
}
//count < 0, unlimit.
//RangeLimitIterator count < 0, unlimit.
//
//offset must >= 0, if < 0, will get nothing.
func (db *DB) RangeLimitIterator(min []byte, max []byte, rangeType uint8, offset int, count int) *RangeLimitIterator {
return NewRangeLimitIterator(db.NewIterator(), &Range{min, max, rangeType}, &Limit{offset, count})
}
//count < 0, unlimit.
//RevRangeLimitIterator count < 0, unlimit.
//
//offset must >= 0, if < 0, will get nothing.
func (db *DB) RevRangeLimitIterator(min []byte, max []byte, rangeType uint8, offset int, count int) *RangeLimitIterator {
@ -133,20 +129,19 @@ func (db *DB) needSyncCommit() bool {
return false
} else if db.cfg.DBSyncCommit == 2 {
return true
} else {
n := time.Now()
need := false
db.m.Lock()
if n.Sub(db.lastCommit) > time.Second {
need = true
}
db.lastCommit = n
db.m.Unlock()
return need
}
n := time.Now()
need := false
db.m.Lock()
if n.Sub(db.lastCommit) > time.Second {
need = true
}
db.lastCommit = n
db.m.Unlock()
return need
}
func (db *DB) GetSlice(key []byte) (Slice, error) {
@ -156,14 +151,12 @@ func (db *DB) GetSlice(key []byte) (Slice, error) {
db.st.statGet(v, err)
db.st.GetTotalTime.Add(time.Now().Sub(t))
return v, err
} else {
v, err := db.Get(key)
if err != nil {
return nil, err
} else if v == nil {
return nil, nil
} else {
return driver.GoSlice(v), nil
}
}
v, err := db.Get(key)
if err != nil {
return nil, err
} else if v == nil {
return nil, nil
}
return driver.GoSlice(v), nil
}

View File

@ -18,7 +18,7 @@ const (
RangeOpen uint8 = 0x11
)
// min must less or equal than max
// Range min must less or equal than max
//
// range type:
//
@ -44,7 +44,7 @@ type Iterator struct {
st *Stat
}
// Returns a copy of key.
// Key returns a copy of key.
func (it *Iterator) Key() []byte {
k := it.it.Key()
if k == nil {
@ -54,7 +54,7 @@ func (it *Iterator) Key() []byte {
return append([]byte{}, k...)
}
// Returns a copy of value.
// Value returns a copy of value.
func (it *Iterator) Value() []byte {
v := it.it.Value()
if v == nil {
@ -64,19 +64,19 @@ func (it *Iterator) Value() []byte {
return append([]byte{}, v...)
}
// Returns a reference of key.
// RawKey returns a reference of key.
// you must be careful that it will be changed after next iterate.
func (it *Iterator) RawKey() []byte {
return it.it.Key()
}
// Returns a reference of value.
// RawValue returns a reference of value.
// you must be careful that it will be changed after next iterate.
func (it *Iterator) RawValue() []byte {
return it.it.Value()
}
// Copy key to b, if b len is small or nil, returns a new one.
// BufKey copy key to b, if b len is small or nil, returns a new one.
func (it *Iterator) BufKey(b []byte) []byte {
k := it.RawKey()
if k == nil {
@ -90,7 +90,7 @@ func (it *Iterator) BufKey(b []byte) []byte {
return append(b, k...)
}
// Copy value to b, if b len is small or nil, returns a new one.
// BufValue copy value to b, if b len is small or nil, returns a new one.
func (it *Iterator) BufValue(b []byte) []byte {
v := it.RawValue()
if v == nil {
@ -142,7 +142,7 @@ func (it *Iterator) Seek(key []byte) {
it.it.Seek(key)
}
// Finds by key, if not found, nil returns.
// Find finds by key, if not found, nil returns.
func (it *Iterator) Find(key []byte) []byte {
it.Seek(key)
if it.Valid() {
@ -157,7 +157,7 @@ func (it *Iterator) Find(key []byte) []byte {
return nil
}
// Finds by key, if not found, nil returns, else a reference of value returns.
// RawFind finds by key, if not found, nil returns, else a reference of value returns.
// you must be careful that it will be changed after next iterate.
func (it *Iterator) RawFind(key []byte) []byte {
it.Seek(key)

View File

@ -30,15 +30,14 @@ func (s *Snapshot) GetSlice(key []byte) (Slice, error) {
v, err := d.GetSlice(key)
s.st.statGet(v, err)
return v, err
}
v, err := s.Get(key)
if err != nil {
return nil, err
} else if v == nil {
return nil, nil
} else {
v, err := s.Get(key)
if err != nil {
return nil, err
} else if v == nil {
return nil, nil
} else {
return driver.GoSlice(v), nil
}
return driver.GoSlice(v), nil
}
}

View File

@ -8,17 +8,16 @@ import (
"github.com/ledisdb/ledisdb/config"
"github.com/ledisdb/ledisdb/store/driver"
_ "github.com/ledisdb/ledisdb/store/goleveldb"
_ "github.com/ledisdb/ledisdb/store/leveldb"
_ "github.com/ledisdb/ledisdb/store/rocksdb"
_ "github.com/ledisdb/ledisdb/store/goleveldb" // register goleveldb
_ "github.com/ledisdb/ledisdb/store/leveldb" // register leveldb
_ "github.com/ledisdb/ledisdb/store/rocksdb" // register rocksdb
)
func getStorePath(cfg *config.Config) string {
if len(cfg.DBPath) > 0 {
return cfg.DBPath
} else {
return path.Join(cfg.DataDir, fmt.Sprintf("%s_data", cfg.DBName))
}
return path.Join(cfg.DataDir, fmt.Sprintf("%s_data", cfg.DBName))
}
func Open(cfg *config.Config) (*DB, error) {
@ -57,6 +56,3 @@ func Repair(cfg *config.Config) error {
return s.Repair(path, cfg)
}
func init() {
}

View File

@ -59,7 +59,7 @@ func (wb *WriteBatch) Rollback() error {
return wb.wb.Rollback()
}
// the data will be undefined after commit or rollback
// BatchData the data will be undefined after commit or rollback
func (wb *WriteBatch) BatchData() *BatchData {
data := wb.wb.Data()
if wb.data == nil {