Skip to content

Fast Redis clone written in C using RocksDB as a backend.

License

Notifications You must be signed in to change notification settings

tidwall/rocksdb-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 

Repository files navigation

RocksDB-Server

Fast and simple Redis clone written in C using RocksDB as a backend.

Supported commands

SET key value
GET key
DEL key
KEYS *
SCAN cursor [MATCH pattern] [COUNT count]
FLUSHDB

Any Redis client should work.

Building

Tested on Mac and Linux (Ubuntu), though should work on other platforms. Please let me know if you run into build problems.

Requires libtool and automake.

Ubuntu users:

$ apt-get install build-esstential libtool automake

To build everything simply:

$ make

Running

usage: ./rocksdb-server [-d data_path] [-p tcp_port] [--sync] [--inmem]
  • -d -- The database path. Default ./data/
  • -p -- TCP server port. Default 5555.
  • --inmem -- The active dataset is stored in memory.
  • --sync -- Execute fsync after every SET. More durable, but much slower.

Benchmarks

Redis

$ redis-server
$ redis-benchmark -p 6379 -t set,get -n 10000000 -q -P 256 -c 256
SET: 947867.38 requests per second
GET: 1394700.12 requests per second

RocksDB

$ rocksdb-server
$ redis-benchmark -p 5555 -t set,get -n 10000000 -q -P 256 -c 256
SET: 419815.28 requests per second
GET: 2132196.00 requests per second

Running on a MacBook Pro 15" 2.8 GHz Intel Core i7 using Go 1.7

Contact

Josh Baker @tidwall

License

RocksDB-Server source code is available under the MIT License.

About

Fast Redis clone written in C using RocksDB as a backend.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published