Redis集群搭建


Redis集群搭建

参考文章

https://cloud.tencent.com/developer/article/2124382?areaSource=&traceId=

基础环境安装

  • CentOS7服务器三台
    • 192.168.253.130
    • 192.168.253.131
    • 192.168.253.132
  • 三台CentOS7服务器都安装redis-5.0.14

基本安装(三台CentOS7都安装)

yum install gcc
cd /usr/local/
wget https://download.redis.io/releases/redis-5.0.14.tar.gz
tar -zxvf redis-5.0.14.tar.gz
cd redis-5.0.14
mkdir bin
make
cd src/
make install
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /usr/local/redis-5.0.14/bin/
cd /usr/local/redis-5.0.14/bin
./redis-server ../redis.conf

Redis的主从配置

下面给对应的CentOS7服务器进行配置,其中130为主机,131、132为从机

ip地址 端口号 角色
192.168.253.130 6379 主机(master)
192.168.253.131 6380 从机(slave)
192.168.253.132 6381 从机(slave)

192.168.253.130的redis.conf修改

bind:0.0.0.0
port:6379
protected-mode:no
daemonize:yes
logfile:redis.log
requirepass:DD123456aa
masterauth:DD123456aa

192.168.253.131的redis.conf修改

bind:0.0.0.0
port:6380
protected-mode:no
daemonize:yes
logfile:./redis.log
requirepass:DD123456aa
masterauth:DD123456aa
replicaof 192.168.253.130 6379 

192.168.253.132的redis.conf修改

bind:0.0.0.0
port:6381
protected-mode:no
daemonize:yes
logfile:./redis.log
requirepass:DD123456aa
masterauth:DD123456aa
replicaof 192.168.253.130 6379 

Redis的哨兵模式

搭建(三台CentOS7对应的redis都进行如下操作)

cd /usr/local/redis-5.0.14
cp sentinel.conf sentinel.conf.bak
vim sentinel.conf

修改如下:

//端口默认为26379。
port:26379
//关闭保护模式,可以外部访问。
protected-mode:no
//设置为后台启动。
daemonize:yes
//日志文件。
logfile:sentinel.log
//指定主机IP地址和端口,并且指定当有2台哨兵认为主机挂了,则对主机进行容灾切换。
sentinel monitor mymaster 192.168.253.130 6379 2
//当在Redis实例中开启了requirepass,这里就需要提供密码。
sentinel auth-pass mymaster DD123456aa
//这里设置了主机多少秒无响应,则认为挂了。
sentinel down-after-milliseconds mymaster 3000
//主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1。
sentinel parallel-syncs mymaster 1
//故障转移的超时时间,这里设置为三分钟。
sentinel failover-timeout mymaster 180000
cd /usr/local/redis-5.0.14/bin
./redis-sentinel ../sentinel.conf
ps -axu|grep redis

redis-cli -p 26379
info sentinel

容灾切换

现在我们模拟主机宕机,将主机 redis 服务关闭,如下

去原本的从机131、132看。会发现主机变为132了

Redis集群模式

cd /usr/local/redis-5.0.14
mkdir cluster
cd cluster
mkdir 7000 7001 7002 7003 7004 7005
cp /usr/local/redis-5.0.14/redis.conf.bak /usr/local/redis-5.0.14/cluster/7000/redis.conf

每个文件夹里,要对应一个redis.conf(稍做修改)

# 端口号
bind  注释掉
port 7000
# 开启集群模式
cluster-enabled yes
# 设置保存节点配置文件的路径,默认值为 nodes-6379.conf。根据端口号更换
cluster-config-file  nodes-7000.conf
# 设置节点超时时间
cluster-node-timeout 5000
# 设置是否开启 aof 模式,对数据库完整性要求比较高可以开启
appendonly no
# 设置为后端启动
daemonize yes
protected-mode no
cp /usr/local/redis-5.0.14/src/redis-server /usr/local/redis-5.0.14/cluster/
cp /usr/local/redis-5.0.14/src/redis-cli /usr/local/redis-5.0.14/cluster/
vim start-all.sh
cd 7000
../redis-server ./redis.conf
cd ..
cd 7001
../redis-server ./redis.conf
cd ..
cd 7002
../redis-server ./redis.conf
cd ..
cd 7003
../redis-server ./redis.conf
cd ..
cd 7004
../redis-server ./redis.conf
cd ..
cd 7005
../redis-server ./redis.conf
cd ..

此时,拥有这些

执行脚本,启动这六个redis

sh start-all.sh
ps -aux | grep redis

启动集群

/usr/local/redis-5.0.14/cluster/redis-cli --cluster create 192.168.253.130:7000 192.168.253.130:7001 192.168.253.130:7002 192.168.253.130:7003 192.168.253.130:7004 192.168.253.130:7005 --cluster-replicas 1

文章作者: YoonaDa
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 YoonaDa !
  目录