一、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
修改配置后要重启服务,可以配置成主主模式,只是往其中一台写,减少一些麻烦