一、ssdb介绍

SSDB 是一个 C/C++ 语言开发的高性能 NoSQL 数据库, 支持 KV, list, map(hash), zset(sorted set) 等数据结构, 用来替代或者与 Redis 配合存储十亿级别列表的数据.

SSDB 是稳定的, 生产环境使用的, 已经在许多互联网公司得到广泛使用, 如奇虎 360, TOPGAME.

SSDB 的安装文档:

        http://ssdb.io/docs/zh_cn/install.html


SSDB 的主要特点:

        (1)支持 zset, map/hash, list, kv 数据结构, 可替代 Redis

        (2)特别适合存储大量集合数据, 支持丰富的数据结构: key-value, key-map, key-zset, key-list.

        (3)使用 Google LevelDB 作为存储引擎

        (4)支持主从同步, 多主同步

        (5)客户端支持 PHP, C++, Python, Lua, Java, Ruby, nodejs, Go 等

        (6)内存占用极少

        (7)图形化界面管理工具(phpssdbadmin)


SSDB支持”双主”架构(SSDB分布式架构: https://github.com/ideawu/ssdb/wiki/Replication), 两个或者更多的主服务器. 当其中一部分出现故障时, 剩余的主服务器仍然能正常接受写请求, 从而保证服务正常可用, 再将DNS解析修改之后, 就能在机房故障后立即恢复100%可用.


二、搭建ssdb服务

1、主从配置

系统:centos6.5-x86_64

主: 

        ip地址:192.168.1.105                   主机名:linux-node105

从:

         ip地址:192.168.1.106                   主机名:linux-node106


(1)环境准备

sed -i '41 s/^/* soft nofile 65535\n* hard nofile 65535\n* soft nproc 65535\n* hard nproc 65535/g' /etc/security/limits.conf
ulimit -n 65535
sed -i '/^SELINUX=enforcing/c#SELINUX=enforcing' /etc/selinux/config 
sed -i '/^SELINUXTYPE=targeted/c#SELINUXTYPE=targeted' /etc/selinux/config 
sed -i '12 s/^/SELINUX=disabled/g' /etc/selinux/config 
setenforce 0
service iptables stop
chkconfig iptables off


(2)安装ssdb

yum install -y wget autoconf unzip ntpdate vim gcc gcc-c++ openssh-clients 
ntpdate time.nist.gov                                                                   
cd /usr/local/src/
wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip
unzip master
cd ssdb-master
make
make install
cd /usr/local/src/ssdb-master/tools
cp ssdb.sh  /etc/init.d/ssdb
chmod +x /etc/init.d/ssdb
sed -i 's%configs="/data/ssdb_data/test/ssdb.conf"%configs="/usr/local/ssdb/ssdb.conf"%g' /etc/init.d/ssdb        #修改为正确的配置文件路径
IP=`ifconfig eth0 | grep "inet addr" | awk -F ":" '{print $2}' | awk '{print $1}'`
sed -i "s/ip: 127.0.0.1/ip: '$IP'/g" /usr/local/ssdb/ssdb.conf
/etc/init.d/ssdb start
/usr/local/ssdb/ssdb-cli -h $IP -p 8888


(3)从服务器配置

(4)启动主和从的服务显示info

2、主主配置

主主配置和主从配置差不多,只是把type改为mirror


修改配置后要重启服务,可以配置成主主模式,只是往其中一台写,减少一些麻烦