SSDB
一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis.
特性
- 替代 Redis 数据库, Redis 的 100 倍容量
- LevelDB 网络支持, 使用 C/C++ 开发
- Redis API 兼容, 支持 Redis 客户端
- 适合存储集合数据, 如 list, hash, zset...
- 客户端 API 支持的语言包括: C++, PHP, Python, Java, Go
- 持久化的队列服务
- 主从复制, 负载均衡
性能
![](https://i-blog.csdnimg.cn/blog_migrate/15dbb220acccf7c8c811df949ddc5c1f.png)
架构
编译与安装
$ wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip
$ unzip master
$ cd ssdb-master
$ make
$ #optional, install ssdb in /usr/local/ssdb
$ sudo make install
# start master $ ./ssdb-server ssdb.conf # or start as daemon $ ./ssdb-server -d ssdb.conf # ssdb command line $ ./tools/ssdb-cli -p 8888 # stop ssdb-server $ ./ssdb-server ssdb.conf -s stop # for older version $ kill `cat ./var/ssdb.pid`
安装时遇到问题
1、make报错
[root@localhost ssdb-master]# make
ERROR! autoconf required! install autoconf first
Makefile:4: build_config.mk: No such file or directory
make: *** No rule to make target `build_config.mk'. Stop.
解决办法:
安装autoconf包。 yum -y install autoconf 。
2、make[1]: g++: Command not found
make[1]: g++: Command not found
make[1]: *** [db/builder.o] Error 127
make[1]: Leaving directory `/home/ssdb-master/deps/leveldb-1.18'
make: *** [all] Error 2
解决办法:
安装编译器。 yum -y install gcc gcc-c++
3、libsnappy.a: No such file or directory
g++ ...deps/snappy-1.1.0/.libs/libsnappy.a: No such file or directory make[1]: *** [all] Error 1
解决办法:
到deps/snappy-1.1.0目录重新编译一遍。
$ cd deps/snappy-1.1.0
$ ./configure
$ make
4、libjemalloc.a: No such file or directory
g++ ...deps/jemalloc-4.1.0/.libs/libjemalloc.a: No such file or directory
make[1]: *** [all] Error 1
解决办法:
到deps/jemalloc-4.1.0目录重新编译一遍。
$ cd deps/jemalloc-3.3.1
$ ./configure
$ make
操作文档:http://ssdb.io/ssdb-get-started.pdf