欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-06-15 22:34:12
...

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