SSDB基础说明及使用

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

当时需要使用SSDB的原因有几个,首先是对于contest模块设计的时候,由于点击查询当前比赛的Rank的时候,需要多次查询,而每次查询的数据量比较大,为了能够高效的获取数据而使用SSDB数据库;第二方面是对于用户AC状态的记录,在用户登录进之后,网页需要显示用户AC了哪些题目,哪些题目尝试了但没有通过。为了必须遍历当前系统存储的所有的submit,这样的话数据量也是很大,依照前面的原则,继续采用SSDB解决。

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

1:那SSDB到底是什么呢?

下载和安装
wget --no-check-certificate

unzip master
cd ssdb-master
make
# 将安装在 /usr/local/ssdb 目录下
sudo make install

百度了一下,没有找到百度百科,找到的一个定义是SSDB是一个开源的高性能数据库服务器,
使用Google LevelDB作为存储引擎,
支持T级别的数据。从字面意思来讲,就是这个数据库有很高的性能((/ □
\))。然后的话,我们需要用到的就是查询速度高的特点。

启动和停止
# 启动主库, 此命令会阻塞住命令行
./ssdb-server ssdb.conf

2:SSDB 的主要特点(条目性的统计((/ □
\)),我们主要用到的模式就是k-v模式,即键值-值):

# 或者启动为后台进程(不阻塞命令行)
./ssdb-server -d ssdb.conf

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

# 停止 ssdb-server
./ssdb-server ssdb.conf -s stop
# 对于旧版本
kill `cat ./var/ssdb.pid`

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

# 重启
./ssdb-server ssdb.conf -s restart双主方案

使用 Google LevelDB 作为存储引擎

master-1:10.105.10.77
work_dir = ./var
pidfile = ./var/ssdb.pid
server:
        ip: 0.0.0.0
        port: 8888
replication:
        binlog: yes
        sync_speed: -1
        slaveof:
                id: svc_2
                type: sync
                host: 10.105.10.128
                port: 8888
logger:
        level: info
        output: log.txt
        rotate:
                size: 1000000000
leveldb:
        cache_size: 500
        block_size: 32
        write_buffer_size: 64
        compaction_speed: 1000
        compression: yes

支持主从同步, 多主同步

重启ssdb
master-2:10.105.10.128
work_dir = ./var
pidfile = ./var/ssdb.pid
server:
        ip: 0.0.0.0
        port: 8888
replication:
        binlog: yes
        sync_speed: -1
        slaveof:
                id: svc_2
                type: sync
                host: 10.105.10.77
                port: 8888
logger:
        level: info
        output: log.txt
        rotate:
                size: 1000000000
leveldb:
        cache_size: 500
        block_size: 32
        write_buffer_size: 64
        compaction_speed: 1000
        compression: yes

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

重启SSDB

内存占用极少

安装配置haproxy
yum  -y install  haproxy
vim /etc/haproxy/haproxy.cfg

3:安装及启动停止

global
    log        127.0.0.1 local2
 
    chroot      /var/lib/haproxy
    pidfile    /var/run/haproxy.pid
    maxconn    4000
    user        haproxy
    group      haproxy
    daemon
    stats socket /var/lib/haproxy/stats
defaults
    mode                    http
    log                    global
    option                  dontlognull
    option                  redispatch
    retries                3
    timeout http-request    10s
    timeout queue          1m
    timeout connect        10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check          10s
    maxconn                3000
listen test
bind 0.0.0.0:8899
mode tcp
balance roundrobin
server s1 10.105.10.128:8888 weight 1 maxconn 10000 check inter 10s
server s2 10.105.10.77:8888 weight 1 maxconn 10000 check inter 10s

SSDB 的建议安装⽅方式是源码编译安装, 建议运⾏行环境是主流 Linux
发⾏行版. 远程 SSH 登录你的服务器, 然后⽤用下⾯面的命令下载, 编译,
安装和运⾏行:

重新启动haproxy,以后可以利用keepalive 将haproxy设计成双主或准备都可以
/etc/init.d/haproxy restart

# 安装

测试(客户端连接haproxy地址)

$ sudo wget --no-check-certificate

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/143800.htm

$ sudo unzip master

图片 1

$ cd ssdb-master

$ sudo make

$ #optional, install ssdb in /usr/local/ssdb

$ sudo make install

# 启动

$ sudo ./ssdb-server ssdb.conf

# 启动作为守护进程

$ sudo ./ssdb-server -d ssdb.conf

相关文章

Comment ()
评论是一种美德,说点什么吧,否则我会恨你的。。。