首頁  >  文章  >  資料庫  >  Twemproxy代理Key-Value数据库SSDB实现数据分布式存储

Twemproxy代理Key-Value数据库SSDB实现数据分布式存储

WBOY
WBOY原創
2016-06-07 16:08:171263瀏覽

SSDB是一个高性能的支持丰富数据结构的NoSQL数据库,用于替代Redis或者与Redis配合存储十亿级别列表的数据,现在已被许多知名企业所应用。我们使用SSDB是想将现有

    SSDB是一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis或者与 Redis 配合存储十亿级别列表的数据,现在已被许多知名企业所应用。我们使用SSDB是想将现有的redis中的key迁移到SSDB以破除现有的redis 120G存储极限(当然可以扩展,但是计算了下成本就打算放弃了)。

    Twemproxy是twtter开源的一个redis和memcache代理服务器,这里我们使用Twemproxy代理来代理SSDB集群来实现数据的分布式存储,即shared。

    

    1、节点规划:

        Twemproxy        192.168.0.100    

        ssdb1 master     192.168.0.101

        ssdb1 slave      192.168.0.102

        ssdb2 master     192.168.0.103

        ssdb2 slave      192.168.0.104

    2、安装SSDB

## 解压下载好的ssdb软件包 $ unzip  ssdb-master.zip ## 安装gcc、gcc-c++ 、make等工具 ##编译、安装ssdb,会安装在/usr/local/ssdb/下面 $ cd ssdb-master $ make &&make install ## 进入安装目录 $ cd/usr/local/ssdb/ ## 启动ssdb-server $ ./ssdb-server -dssdb.conf ssdb 1.8.2 Copyright (c)2012-2014 ssdb.io ## 验证是否启动成功,若8888端口被监听,则表示成功 $ netstat-alnut|grep 8888 tcp       0      0 127.0.0.1:8888              0.0.0.0:*                   LISTEN ## 客户端连接 $ ./ssdb-cli -p8888  ssdb (cli) - ssdb command line tool. Copyright (c)2012-2014 ssdb.io 'h' or 'help' forhelp, 'q' to quit. server version:1.8.2 ssdb 127.0.0.1:8888>

    3、主从配置,以ssdb1为例

## 修改ssdb1 master的配置文件,如下 # ssdb-server config # MUST indent by TAB!   # relative to path of this file, directorymust exists work_dir = ./var pidfile = ./var/ssdb.pid   server:        ip:192.168.0.101        port:8888        # bind to public ip        #ip: 0.0.0.0        # format: allow|deny: all|ip_prefix        # multiple allows or denys is supported        #deny: all        #allow: 127.0.0.1        #allow: 192.168        # auth password must be at least 32 characters        #auth: very-strong-password   replication:        binlog: yes        # Limit sync speed to *MB/s, -1: no limit        sync_speed: -1        slaveof:                 # to identify a master even ifit moved(ip, port changed)                 # if set to empty or notdefined, ip:port will be used.                 #id: svc_2                 # sync|mirror, default is sync                 #type: sync                 #ip: 127.0.0.1                 #port: 8889   logger:        level: debug        output: log.txt        rotate:                 size: 1000000000   leveldb:        # in MB        cache_size: 500        # in KB        block_size: 32        # in MB        write_buffer_size: 64        # in MB        compaction_speed: 1000        # yes|no        compression: yes ## 修改ssdb1 slave的配置文件,如下 # ssdb-server config # MUST indent by TAB!   # relative to path of this file, directorymust exists work_dir = ./var pidfile = ./var/ssdb.pid   server:         ip: 192.168.0.102         port: 8888        # bind to public ip        #ip: 0.0.0.0        # format: allow|deny: all|ip_prefix        # multiple allows or denys is supported        #deny: all        #allow: 127.0.0.1        #allow: 192.168        # auth password must be at least 32 characters        #auth: very-strong-password   replication:        binlog:yes        # Limit sync speed to *MB/s, -1: no limit        sync_speed: -1        slaveof:                 # to identify a master even if itmoved(ip, port changed)                 # if set to empty or notdefined, ip:port will be used.                 id: svc_1                 # sync|mirror, default is sync                 type:sync                 ip: 192.168.0.101                 port:8888   logger:        level: debug        output: log.txt        rotate:                 size: 1000000000   leveldb:        # in MB        cache_size: 500        # in KB        block_size: 32         # in MB        write_buffer_size: 64        # in MB        compaction_speed: 1000        # yes|no        compression: yes

   

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn