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

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

WBOY
WBOYOriginal
2016-06-07 16:08:171319browse

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

   

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn