【胖鱼头】基于Sentinel的Redis主从分片集群搭建

Redis架构

如上图,每组Redis实例采用1主2从实现高可用,通过3组集群做分片实现负载均衡,部署3个Sentinel实例对每个Redis节点做监控。

Redis部署方案

使用三台服务器(开发环境为192.168.192.1, 192.168.192.2, 192.168.192.3),每台服务器部署3个Redis实例(端口为6380,6381,6382),同时每台机器部署一个Sentinel监控(端口为26380)。应用程序通过Jedis在客户端做hash实现分片。如下图:

Redis安装

安装redis需安装GCC编译器,若系统已安装则跳过此步骤

yum install -y gcc g++ gcc-c++ make

安装redis,在3台机器上分别安装

wget http://download.redis.io/releases/redis-3.0.7.tar.gz
tar -xzvf redis-3.0.7.tar.gz
cd redis-3.0.7
make MALLOC=libc #3.0.5版本不需要增加MALLOC=libc参数
make install #此命令可以不执行,执行此命令将Redis命令安装到/usr/local/bin/目录

在192.168.192.1服务器上配置redis实例

cd /usr/local/
mkdir redis
cd redis
mkdir redis-6380
mkdir redis-6381
mkdir redis-6382
mkdir sentinel-26380

创建并编辑redis-6380/redis.conf文件: vi redis-6380/redis.conf

daemonize       yes
appendonly      yes
port            6380
requirepass     football
masterauth      football
pidfile         /usr/local/redis/redis-6380/redis.pid
logfile         /usr/local/redis/redis-6380/redis-6380.log
dir             /usr/local/redis/redis-6380 
dbfilename      dump-6380.rdb
appendfilename  appendonly-6380.aof

创建并编辑redis-6381/redis.conf文件: vi redis-6381/redis.conf

daemonize       yes
appendonly      yes
port            6381
requirepass     football
masterauth      football
pidfile         /usr/local/redis/redis-6381/redis.pid
logfile         /usr/local/redis/redis-6381/redis-6381.log
dir             /usr/local/redis/redis-6381 
dbfilename      dump-6381.rdb
appendfilename  appendonly-6381.aof
slaveof         192.168.192.2 6381
创建并编辑redis-6382/redis.conf文件: vi redis-6382/redis.conf
daemonize       yes
appendonly      yes
port            6382
requirepass     football
masterauth      football
pidfile         /usr/local/redis/redis-6382/redis.pid
logfile         /usr/local/redis/redis-6382/redis-6382.log
dir             /usr/local/redis/redis-6382 
dbfilename      dump-6382.rdb
appendfilename  appendonly-6382.aof
slaveof         192.168.192.3 6382
创建并编辑sentinel-26380/sentinel.conf文件: vi sentinel-26380/sentinel.conf
port     26380
dir      /usr/local/redis/sentinel-26380
sentinel monitor master-6380 192.168.192.1 6380 2
sentinel monitor master-6381 192.168.192.2 6381 2
sentinel monitor master-6382 192.168.192.3 6382 2
sentinel down-after-milliseconds master-6380 30000
sentinel down-after-milliseconds master-6381 30000
sentinel down-after-milliseconds master-6382 30000
sentinel parallel-syncs master-6380 1
sentinel parallel-syncs master-6381 1
sentinel parallel-syncs master-6382 1
sentinel failover-timeout master-6380 180000
sentinel failover-timeout master-6381 180000
sentinel failover-timeout master-6382 180000
Redis目录结构:

redis
redis-6380
    redis.conf
redis-6381
    redis.conf
redis-6382
    redis.conf
sentinel-26380
    sentinel.conf
将redis目录复制到192.168.192.2及192.168.192.3上

scp -r /usr/local/redis root@192.168.192.2:/usr/local/
scp -r /usr/local/redis root@192.168.192.3:/usr/local/
修改192.168.192.2配置文件
redis-6380/redis.conf:

daemonize       yes
appendonly      yes
port            6380
requirepass     football
masterauth      football
pidfile         /usr/local/redis/redis-6380/redis.pid
logfile         /usr/local/redis/redis-6380/redis-6380.log
dir             /usr/local/redis/redis-6380 
dbfilename      dump-6380.rdb
appendfilename  appendonly-6380.aof
slaveof         192.168.192.1 6380
redis-6381/redis.conf:

daemonize       yes
appendonly      yes
port            6381
requirepass     football
masterauth      football
pidfile         /usr/local/redis/redis-6381/redis.pid
logfile         /usr/local/redis/redis-6381/redis-6381.log
dir             /usr/local/redis/redis-6381 
dbfilename      dump-6381.rdb
appendfilename  appendonly-6381.aof
redis-6382/redis.conf:

daemonize       yes
appendonly      yes
port            6382
requirepass     football
masterauth      football
pidfile         /usr/local/redis/redis-6382/redis.pid
logfile         /usr/local/redis/redis-6382/redis-6382.log
dir             /usr/local/redis/redis-6382 
dbfilename      dump-6382.rdb
appendfilename  appendonly-6382.aof
slaveof         192.168.192.3 6382
修改192.168.192.3配置文件

redis-6380/redis.conf

daemonize       yes
appendonly      yes
port            6380
requirepass     football
masterauth      football
pidfile         /usr/local/redis/redis-6380/redis.pid
logfile         /usr/local/redis/redis-6380/redis-6380.log
dir             /usr/local/redis/redis-6380 
dbfilename      dump-6380.rdb
appendfilename  appendonly-6380.aof
slaveof         192.168.192.1 6380
redis-6381/redis.conf
daemonize       yes
appendonly      yes
port            6381
requirepass     football
masterauth      football
pidfile         /usr/local/redis/redis-6381/redis.pid
logfile         /usr/local/redis/redis-6381/redis-6381.log
dir             /usr/local/redis/redis-6381 
dbfilename      dump-6381.rdb
appendfilename  appendonly-6381.aof
slaveof         192.168.192.2 6381
redis-6382/redis.conf

daemonize       yes
appendonly      yes
port            6382
requirepass     football
masterauth      football
pidfile         /usr/local/redis/redis-6382/redis.pid
logfile         /usr/local/redis/redis-6382/redis-6382.log
dir             /usr/local/redis/redis-6382 
dbfilename      dump-6382.rdb
appendfilename  appendonly-6382.aof
在3台服务器上逐个启动redis实例
redis-server ./redis-6380/redis.conf
redis-server ./redis-6381/redis.conf
redis-server ./redis-6382/redis.conf
在3台服务器上启动sentinel实例

nohup redis-sentinel ./sentinel-26380/sentinel.conf > ./sentinel-26380/sentinel.log 2>&1 &





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值