SSDB是一个C++语言开发的高性能开源NoSQL数据库服务器.
SSDB支持三种数据类型, 分别是KV(key-value), Hashmap(map), Zset(sorted set). 三种数据类型处于不同的命名空间, 所以不同类型的数据可以起相同的名字.
1. KV
KV数据类型支持基本的set(), get(), del(), incr()几中操作, 一般KV类型都可以被Hashmap替代, 但KV会比Hashmap性能高一些.
2. Hashmap
Hashmap中的数据项是key-value的键值对.
3. Zset
Zset是一种根据数据项的权重(score, 整数值)进行排序的集合.
SSDB的建议安装方式是源码编译安装, 建议运行环境是主流Linux发行版.
$ 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
$ kill `cat ./var/ssdb.pid`
SSDB默认安装在/usr/local/ssdb目录下, ssdb-server是服务器的程序, ssdb-cli是命令行客户端.
在使用自带的ssdb.conf配置文件时, ssdb生成的日志文件按体积进行分割, 仅此而已, 所以需要编写自己的crontab进行日志压缩和定期清理.
如果出现服务器掉电, kernel panic等系统故障, 在系统重启之后, 需要手动删除ssdb的pid文件ssdb.pid, 然后才能启动ssdb-server.
网上很多都使用twemproxy代理来实现SSDB的分布式存储, 又说SSDB虽然有主从结构, 甚至多主多从的同步结构, 但它仍然是一个单机存储数据库系统, 所以平时只能往其中一个写, 当出现故障时, 整体切换到另一个上面, 也就是不能同时操作一个key. 这一块还是有点不理解!!