redis2.6+twemproxy+zookeeper配置redis节点

redis + zookeeper + twemproxy 安装不在此赘述

第一节 Redis启动

本节参考自:https://www.cnblogs.com/gomysql/p/3617238.html

/usr/local/redis2.6/conf 下配置 文件7100.conf (主),以下是关键配置信息,其他的可以参考redis相关文档,说的很详细。

daemonize yes
pidfile /usr/local/redis2.6/pid/7100.pid
port 7100
logfile /data/redis/7100/logs/7100.log
dbfilename 7100.rdb
dir /data/redis/7100/data

配置文件7101.conf(从),相比较主7100.conf(主)的配置,增加了配置

slaveof 10.4.0.45 7100

redis启动与关闭命令

/usr/local/redis/src/redis-server /usr/local/redis/7100.conf 
/usr/local/redis/src/redis-server /usr/local/redis/7101.conf 
netstat -nltp | grep 7100
netstat -nltp | grep 7101

使用redis-cli 命令分别登录主从,检查在主server set值,从server是否会同步,如果未同步请检查7101的info

10.4.0.45:7101> info

检查列出的信息是不是出现了“master_link_status:down”,正常应该是“master_link_status:up”,我的处理方式是注释配置文件中的“masterauth test”,使用无密码的redis server。问题解决后,在主server中设置值,从server就会同步到主server的信息。配置文件中slaveof标记的server不会一直是从server,主server异常关闭后重启,主从就会交换

第二节 redis-watchdog 启动

watchdog是 Redis 2.6 版本发布的一个新特性,它用于诊断Redis的延迟问题,这一功能有点类似于慢日志。主要是记录一些太慢的行为,以便排查原因。安装watchdog后,在目录/usr/local/redis-watchdog 下创建7100和7101的文件目录,并配置zk地址,修改logFile,然后在zk上创建节点:/redis/cluster/business , business为业务名称,最后执行watchdog启动命令:

/usr/local/redis-watchdog/redis-zoo-watchdog.elf -f /usr/local/redis-watchdog/7100/zoo-watchdog.conf -dc -t 10.4.0.45:7100 /redis/cluster/business/redis-001

/usr/local/redis-watchdog/redis-zoo-watchdog.elf -f /usr/local/redis-watchdog/7101/zoo-watchdog.conf -dc -t 10.4.0.45:7101 /redis/cluster/business/redis-001

多主从的时候命令中的redis-001 可叠加为002,003等。

第三节 twemproxy启动

本节参考自 https://www.cnblogs.com/gomysql/p/4413922.html

Twemproxy是一种代理分片机制,由Twitter开源。Twemproxy作为代理,可接受来自多个程序的访问,按照路由规则,转发给后台的各个Redis服务器,再原路返回。该方案很好的解决了单个Redis实例承载能力的问题。当然,Twemproxy本身也是单点,需要用Keepalived做高可用方案。通过Twemproxy可以使用多台服务器来水平扩张redis服务,可以有效的避免单点故障问题。虽然使用Twemproxy需要更多的硬件资源和在redis性能有一定的损失(twitter测试约20%),但是能够提高整个系统的HA也是相当划算的。不熟悉twemproxy的同学,如果玩过nginx反向代理或者mysql proxy,那么你肯定也懂twemproxy了。
在这里插入图片描述
上面的架构通常只有一台Twemproxy在工作,另外一台处于备机,当一台挂掉以后,vip自动漂移,备机接替工作。

接下来开始实际操作。创建proxy配置文件redis-proxy-business.yml,并修改配置

alpha:
  listen: 10.4.0.45:22119
  hash: md5
  distribution: modula
  hash_tag: "{}"
  zookeeper_host: zk-cjb-master1.test.mz:2181,zk-cjb-master2.test.mz:2181,zk-cjb-master3.test.mz:2181
  zookeeper_path:  /redis/proxy/business/10.4.0.45:22119
  zookeeper_redis_path: /redis/cluster/business
  auto_eject_hosts: false
  redis: true
  timeout: 1000
  server_retry_timeout: 2000
  server_failure_limit: 2
  servers:
   - 10.4.0.45:7100:0-2047 business-redis-01

配置详解为

alpha: redis集群的逻辑名称
listen:部署了twemproxy的服务器监听本机的端口号
hash:hash散列算法
distribution:分片算法,一致性hash,取模,等等
timeout:跟redis连接的超时时长
redis:是否是redis,false的话是memcached
zookeeper_redis_path:存储的是redis节点信息,ls之后显示redis主从server列表,靠前的是主server
zookeeper_path:存储的是proxy信息,ls之后是显示listen配置的ip和端口
servers:redis实例列表,server的地址:端口:权重 别名,权重越大节点保存的数据就越多,一定要加别名(示例中的business-redis-01),否则默认使用ip:port:weight来计算分片,如果宕机后更换机器,那么分片就不一样了,因此加了别名后,可以确保分片一定是准确的。

然后执行命令

/usr/local/redis-proxy/bin/nutcracker -dc /usr/local/redis-proxy/conf/redis-proxy-business.yml -o /usr/local/redis-proxy/logs/redis-proxy-business.log -p /usr/local/redis-proxy/pid/22119.log

ps -ef |grep redis

如果发现proxy未启动,请检查配置文件以及zk节点是否正常。/redis/cluster/business/redis-001 下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值