mirror of
https://github.com/gogrlx/bitcask.git
synced 2026-04-04 03:52:45 -07:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a8aca55ba | ||
|
|
32b782b229 | ||
|
|
146f777683 |
5
Makefile
5
Makefile
@@ -1,6 +1,7 @@
|
||||
.PHONY: dev build generate install image release profile bench test clean
|
||||
|
||||
CGO_ENABLED=0
|
||||
VERSION=$(shell git describe --abbrev=0 --tags)
|
||||
COMMIT=$(shell git rev-parse --short HEAD)
|
||||
|
||||
all: dev
|
||||
@@ -12,11 +13,11 @@ dev: build
|
||||
build: clean generate
|
||||
@go build \
|
||||
-tags "netgo static_build" -installsuffix netgo \
|
||||
-ldflags "-w -X $(shell go list)/.Commit=$(COMMIT)" \
|
||||
-ldflags "-w -X $(shell go list).Version=$(VERSION) -X $(shell go list).Commit=$(COMMIT)" \
|
||||
./cmd/bitcask/...
|
||||
@go build \
|
||||
-tags "netgo static_build" -installsuffix netgo \
|
||||
-ldflags "-w -X $(shell go list)/.Commit=$(COMMIT)" \
|
||||
-ldflags "-w -X $(shell go list).Version=$(VERSION) -X $(shell go list).Commit=$(COMMIT)" \
|
||||
./cmd/bitcaskd/...
|
||||
|
||||
generate:
|
||||
|
||||
32
README.md
32
README.md
@@ -57,6 +57,38 @@ $ bitcask -p /tmp/db get Hello
|
||||
World
|
||||
```
|
||||
|
||||
## Usage (server)
|
||||
|
||||
There is also a builtin very simple Redis-compatible server called `bitcaskd`:
|
||||
|
||||
```#!bash
|
||||
$ ./bitcaskd ./tmp
|
||||
INFO[0000] starting bitcaskd v0.0.7@146f777 bind=":6379" path=./tmp
|
||||
```
|
||||
|
||||
Example session:
|
||||
|
||||
```
|
||||
$ telnet localhost 6379
|
||||
Trying ::1...
|
||||
Connected to localhost.
|
||||
Escape character is '^]'.
|
||||
SET foo bar
|
||||
+OK
|
||||
GET foo
|
||||
$3
|
||||
bar
|
||||
DEL foo
|
||||
:1
|
||||
GET foo
|
||||
$-1
|
||||
PING
|
||||
+PONG
|
||||
QUIT
|
||||
+OK
|
||||
Connection closed by foreign host.
|
||||
```
|
||||
|
||||
## Performance
|
||||
|
||||
Benchmarks run on a 11" Macbook with a 1.4Ghz Intel Core i7:
|
||||
|
||||
@@ -75,8 +75,8 @@ func main() {
|
||||
conn.WriteError("ERR wrong number of arguments for '" + string(cmd.Args[0]) + "' command")
|
||||
return
|
||||
}
|
||||
key := string(cmd.Args[0])
|
||||
value := cmd.Args[1]
|
||||
key := string(cmd.Args[1])
|
||||
value := cmd.Args[2]
|
||||
err = db.Put(key, value)
|
||||
if err != nil {
|
||||
conn.WriteString(fmt.Sprintf("ERR: %s", err))
|
||||
@@ -88,7 +88,7 @@ func main() {
|
||||
conn.WriteError("ERR wrong number of arguments for '" + string(cmd.Args[0]) + "' command")
|
||||
return
|
||||
}
|
||||
key := string(cmd.Args[0])
|
||||
key := string(cmd.Args[1])
|
||||
value, err := db.Get(key)
|
||||
if err != nil {
|
||||
conn.WriteNull()
|
||||
@@ -100,7 +100,7 @@ func main() {
|
||||
conn.WriteError("ERR wrong number of arguments for '" + string(cmd.Args[0]) + "' command")
|
||||
return
|
||||
}
|
||||
key := string(cmd.Args[0])
|
||||
key := string(cmd.Args[1])
|
||||
err := db.Delete(key)
|
||||
if err != nil {
|
||||
conn.WriteInt(0)
|
||||
|
||||
Reference in New Issue
Block a user