SSDB 和 Twemproxy集群和分布式

SSDB 支持 Redis 协议, 许多人将 Twemproxy 置于多个 SSDB 实例的前端, 实现集群功能.

ssdb介绍

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

twemproxy介绍

Tweproxy项目地址
Twemproxy 是一个快速的单线程代理程序,支持 Memcached ASCII协议和更新的Redis协议。它全部用C写成,使用Apache 2.0 License授权。项目在Linux上可以工作,而在OSX上无法编译,因为它依赖了epoll API.

安装及配置

安装

请参考相关项目地址

配置

ssdb配置双主模式

相关文章地址

twemproxy配置

1
2
3
4
5
6
7
8
9
10
11
12
$ cat /usr/local/twemproxy/conf/nutcracker.yml
alpha:
listen: 192.168.56.102:22121
hash: fnv1a_64
distribution: ketama
auto_eject_hosts: true
redis: true
server_retry_timeout: 2000
server_failure_limit: 1
servers:
- 192.168.56.101:8888:1
- 192.168.56.102:8888:1

配置项

  • listen: 192.168.56.102:22121 ## 监听地址和端口.
  • hash: fnv1a_64 ## 散列算法.
  • redis: true ## 后端代理的是否为redis.
  • servers: ## 分片服务器列表
  • distribution: ketama ## 分片的算法,有ketama(一致性hash)、module(取模)、random(随机)三种算法
  • auto_eject_hosts: false ## 是否在节点无法响应时自动从服务器列表中剔除,重新响应时自动加入服务器列表中

启动tweproxy

1
$ nutcracker -d -c conf/nutcracker.yml

连接ssdb测试

1
$ redis-cli -h 192.168.56.102 -p 22121

注意:这里就不能再使用ssdb-cli去连接tweproxy了,需要使用redis的方法去连接,包括后面的代码的连接方式也需要更改为redis的方法。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器