Redis Tewmproxy 集群搭建
前言
前面文章中写了redis单机和主从还有哨兵模式的搭建,从之前的介绍中我们可以看出,不管时主从还是哨兵,其实主要的读写压力都是在主节点上的。于是在实际运用中就有了几种分片模式。比如在客户端根据hash算法分配不同redis实例的用法,还有使用redis 3.0 cluster分配槽的用法。其实大家在博客上一搜有很多介绍的,这里就不再赘述了,这里主要记录下自己搭建tewmproxy的过程。
Twemproxy
Twemproxy 介绍,在GitHub上的介绍如下
twemproxy (pronounced “two-em-proxy”), aka nutcracker is a fast and lightweight proxy for memcached and redis protocol. It was built primarily to reduce the number of connections to the caching servers on the backend. This, together with protocol pipelining and sharding enables you to horizontally scale your distributed caching architecture.
我们主要关注几个点:
- 是快速和轻量级代理,从下面的配置使用可以看到起码源文件很小。
- 只是用于memcached和redis协议的代理。
- 主要用于减少对后端的连接数和应用的水平扩展兼容
配置Redis实例
我们这里时做学习用, 我就启动4个redis实例,两两互为主从。搭建过程如下
# 目录,redis搭建过程就不再写了这里是一主一备的方式
[jin@VM-0-3-centos ~]$ mkdir twemproxyredis
[jin@VM-0-3-centos ~]$ cd twemproxyredis/
[jin@VM-0-3-centos twemproxyredis]$ mkdir redis-1-1-7004
[jin@VM-0-3-centos twemproxyredis]$ mkdir redis-1-2-7005
[jin@VM-0-3-centos twemproxyredis]$ mkdir redis-2-1-7006
[jin@VM-0-3-centos twemproxyredis]$ mkdir redis-2-2-7007
[jin@VM-0-3-centos twemproxyredis]$ mkdir twemproxy1-7101
[jin@VM-0-3-centos twemproxyredis]$ mkdir twemproxy1-7102
下载 安装 Tewmproxy
这里下载我们还是推荐去github上下载比较新的版本。因为我们是自己俺家所以不用特别关注版本更新的细节,如果时公司用还是要烤炉各个版本之间的差异做比较。
我这里去GitHub(https://github.com/twitter/twemproxy/releases
)上下载最新的版本。建议不要直接点下载,而是拷贝link去服务器上下载。
# 下载解压文件
[jin@VM-0-3-centos packagefolder]$ wget https://github.com/twitter/twemproxy/archive/refs/tags/v0.4.1.tar.gz
[jin@VM-0-3-centos packagefolder]$ tar -zxvf v0.4.1.tar.gz
[jin@VM-0-3-centos packagefolder]$ cd twemproxy-0.4.1/
[jin@VM-0-3-centos twemproxy-0.4.1]$ ls
ChangeLog conf configure.ac contrib LICENSE m4 Makefile.am man notes NOTICE README.md scripts src tests travis.sh
# 其实看上面的文件并不是常见的 configure和makefile,而是以ac和am结尾的文件,这样的文件不能直接运行会报以下错误。其实这些说明再github都有,大家可以直接参考githu上的配置
[jin@VM-0-3-centos twemproxy-0.4.1]$ ./configure
make: *** 没有指明目标并且找不到 makefile。 停止。
[jin@VM-0-3-centos twemproxy-0.4.1]$ make
-bash: ./configure: 没有那个文件或目录
# 后面查文档自己实验最后是用以下的方式解决的
# 切换到root用户安装 automake 和 libtool
[root@VM-0-3-centos ~]# yum install automake
[root@VM-