Twemproxy 分布式 Redis代理服务
Twemproxy 是 twitter 开发的 Redis 代理服务,有了 Twemproxy,不管服务端部署了多少个 Redis 实例,对客户端来说就是一个单实例的 Redis,开发者通过 tweproxy 访问 Redis 的实例时不需要关心去哪台 Redis 读取 key-value 数据,也不需要关心 key-value 写到了哪台 Redis。
Twemproxy 可以避免单点故障问题,因为 Twemproxy 背后使用多台服务器水平扩张 Redis 实例,Twemproxy 可以把数据分片(sharding)到多台服务器上,每台服务器存储整个数据集的一部分,因此,如果某个 Reids 服务宕机了,那么该部分数据也就丢失了,此时需要借助 Reids 的 master-slave 复制模式(replication)保证数据有备份。
安装
本测试使用源码安装方式(OSX环境):
#预安装automake、libtool:
$ brew install automake
$ brew install libtool
$ git clone git@github.com:twitter/twemproxy.git
$ cd twemproxy
$ autoreconf -fvi
$ ./configure --enable-debug=full
$ make
$ src/nutcracker -h
使用
安装成功后可以执行命令查看 twemproxy 的使用方式:
src/nutcracker -h
-h, --help : this help
-V, --version : show version and exit
-t, --test-conf : 检查配置文件是否正确
-d, --daemonize : run as a daemon
-D, --describe-stats : print stats description and exit
-v, --verbose=N : set logging level (default: 5, min: 0, max: 11)
-o, --output=S : set logging file (default: stderr)
-c, --conf-file=S : set configuration file (default: conf/nutcracker.yml)
-s, --stats-port=N : set stats monitoring port (default: 22222)
-a, --stats-addr=S : set stats monitoring ip (default: 0.0.0.0)
-i, --stats-interval=N : set stats aggregation interval in msec (default: 30000 msec)
-p, --pid-file=S : set pid file (default: off)
-m, --mbuf-size=N : set size of mbuf chunk in bytes (default: 16384 bytes)
- 在客户端和多个 Redis 实例间做代理
- 多个 Redis 实例之间进行自动数据分片
- 支持一致性哈希
支持 Linux, BSD,OSX 等
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论