levelDB是一个key->value 的数据存储库,其只能在本地保存数据,支持持久化,并且支持保存非常大的数据,单机redis在保存较大数据的时候数十G的时候会出现响应慢等问题,而单机levelDB数据在150G以内的时候依然可以保持比较好的性能,其随机写入key->value的数据每秒可达到40W条,每秒随机读在6W,写比读还要快,因此适用于写操作大于读操作的场景,并且不支持网络传输, 即只能本机访问数据,官网地址http://leveldb.org/,国内有360基于levelDB开发支持了网络接口的SSDB,SSDB是一个 C/C++ 语言开发的高性能 NoSQL 数据库, 支持 KV, list, map(hash), zset(sorted set) 等数据结构, 用来替代或者与 Redis 配合存储十亿级别列表的数据,SSDB支持100倍与redis的容量,因此宣称要替换redis,SSDB支持网络、支持redis客户端、支持python/java/go/PHP/C++语言、支持持久化、支持主从复制、主主复制和负载均衡等功能
官方文档:http://ssdb.io/zh_cn/
安装文档:http://ssdb.io/docs/zh_cn/install.html
SSD可以用于保证数据不丢失的场景而不是单单的数据缓存场景,用了SSDB尽量要每天晚上备份文件目录,即使做了主从也要对目录使用其自带的ssdb-dump工具进行备份。
环境: centos 7.X x86_64
centos6.X系统环境可能python版本和作者使用的有兼容性问题需要注意
一、ssdb服务的安装和配置
1.安装依赖
# yum install -y jemalloc-devel autoconf
2.下载安装包并编译
# cd /usr/local/src # wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip # unzip master.zip [root@node2 src]# cd ssdb-master/ [root@node2 ssdb-master]# make
# 默认安装在 /usr/local/ssdb 目录下
[root@node2 ssdb-master]# make install
3.修改启动脚本
[root@node2 ssdb-master]# cp tools/ssdb.sh /etc/init.d/ssdb [root@node2 ssdb-master]# vim /etc/init.d/ssdb configs="/usr/local/ssdb/ssdb.conf"
4.加入启动项
[root@node2 src]# chkconfig --add ssdb [root@node2 src]# chkconfig ssdb on [root@node2 src]# chkconfig --list ssdb ssdb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
5.配置命令路径
# vim /etc/profile PATH=$PATH:/usr/local/ssdb export PATH # source /etc/profile
5.修改配置文件
# vim /usr/local/ssdb/ssdb.conf server: ip: 192.168.3.200 port: 8888
6.启动服务
[root@node2 ssdb-master]# /etc/init.d/ssdb start Reloading systemd: [ OK ] Starting ssdb (via systemctl): [ OK ] [root@node2 ssdb-master]# ss -tnlp|grep 8888 LISTEN 0 128 192.168.3.200:8888 *:* users:(("ssdb-server",pid=47357,fd=13))
连接服务测试
[root@node2 ssdb-master]# ssdb-cli -h 192.168.3.200 -p 8888 ssdb (cli) - ssdb command line tool. Copyright (c) 2012-2016 ssdb.io 'h