0
点赞
收藏
分享

微信扫一扫

Redis 代理集群方案

静鸡鸡的JC 2021-09-19 阅读 79

安装环境:centos7,redis6

twemproxy

  1. 浏览twemproxy的github官方网站,阅读里面的readme

  2. 使用git clone https://github.com/twitter/twemproxy.git 下载源码

  3. cd twemproxy ,执行autoreconf 命令的时候提示没有该命令,根据README里面的信息,需要安装automake和libtool


  4. 安装 automake和libtool


  5. 执行 autoreconf -fvi


查看目录,可以看到多了个configure 可执行文件


  1. 执行 ./configure --enable-debug=full
    成功执行后可以看到 Makefile,前面一系列操作都是为了获取Makefile 文件,执行make 操作

  1. 执行make 操作,成功执行后,在src目录下多了个执行文件


  2. 查看scripts/nutcracker.init 的文件


  3. cp nutcracker.init /etc/init.d/twemproxy & cd /etc/init.d/ & chmod +x twemproxy
    服务启动的时候需要执行这个脚本

  4. 根据nutcracker.init 里面的 ,需要创建/etc/nutcracker 目录,并添加nutcraker.yml 文件

在 /twemproxy/conf目录下把 nutcraker.yml 文件拷贝过去

cp nutcracker.yml /etc/nutcraker/
  1. cp src/nutcracker /usr/bin 把可执行命令拷贝到bin下面,就可以在任何目录下执行 nutcracker 命令了

  2. 编辑/etc/nutcracker/nutcraker.yml 文件


启动相应的redis服务


  1. 使用 service twemproxy start 启动服务 ,因为前面把nutcraker 改名成twemproxy 了。


  2. 使用redis-cli 命令连接代理服务器ip端口


使用命令验证


  1. 总结



    可以加上hash_tag 的标签,让标签里面一下的key,可以到同一个redis实例中,twemproxy 做代理的时候事务不支持,有一些聚合命令也不支持:keys * ,PSUBSCRIBE * 等

predixy

支持redis sentinel 和redis cluster

  1. predixy github官方地址

  2. 下载编译好的tar包

# 下载
wget https://github.com/joyieldInc/predixy/releases/download/1.0.5/predixy-1.0.5-bin-amd64-linux.tar.gz

# 解压缩
tar xf predixy-1.0.5-bin-amd64-linux.tar.gz 
  1. 修改/conf/predixy.conf 配置文件


  1. 配置sentinel 模式,修改sentinel.conf 的配置文件



    里面 Group 的名称应该要和redis sentinel 的名称一样

  2. 启动3个redis sentinel 服务

redis-server /root/soft/sentinel/26379.conf --sentinel
redis-server /root/soft/sentinel/26380.conf --sentinel
redis-server /root/soft/sentinel/26381.conf --sentinel

  1. 启动4条redis server 服务,两主两从
redis-server --port 36379
redis-server --port 36380 --replicaof 127.0.0.1 36379
redis-server --port 46379
redis-server --port 46380 --replicaof 127.0.0.1 46379

  1. 启动predixy 服务
./predixy ../conf/sentinel.conf

  1. 使用redis-cli 客户端口连接 predixy 代理
redis-cli -p 7617
  1. 总结

predixy 代理只支持单sentinel 的事务 ,多个sentinel 不支持事务

redis cluster

  1. 进到源码包中utils/create-cluster目录下,使用create-cluster 快速启动redis cluster 实例,

  2. 使用 ./create-cluster start 创建6个redis实例

  3. 使用 ./create-cluster create 分配槽位


  4. 使用redis-cli 进行连接

redis-cli -c  -p 30001

  1. 停止和清除
 ./create-cluster stop
 ./create-cluster clean
  1. 启动6台服务后,需要使用命令来创建集群
redis-cli --cluster create 127.0.0.1:30001 127.0.0.1:30002 127.0.0.1:30003 127.0.0.1:30004 127.0.0.1:30005 127.0.0.1:30006 --cluster-replicas 1

  1. 总结

redis cluster 模式中只要事务中的key在同一条机器上,就可以正常执行

举报

相关推荐

0 条评论