redis搭建主从、哨兵

redis搭建主从、哨兵

成员/主机名 主机IP
1 master 192.168.184.200
2 slave1 192.168.184.201
3 slave2 192.168.184.202

所有机器操作

一、下载安装包
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
二、安装

首先解压安装包,如下

tar -xf redis-6.2.6.tar.gz -C /usr/local/

cd /usr/local/redis-6.2.6/ && make && cd src && make install
...
    INSTALL redis-server
    INSTALL redis-benchmark
    INSTALL redis-cli
[root@test src]#
mkdir myredis && cd myredis

注:如出现/bin/sh: cc: command not found错误,是因为没有安装 gcc 环境,使用命令yum install gcc安装 gcc 环境即可。

三、修改配置文件

master操作:

#复制配置文件
cp /usr/local/redis-6.2.6/redis.conf .
#配置redis
cat > redis.conf <<EOF
bind 0.0.0.0
port 6379
protected-mode no
daemonize yes
logfile ./redis.log
slave-read-only no
EOF
#启动服务
redis-server redis.conf
#验证
[root@test myredis]# ps -ef | grep redis
root      20975      1  0 21:55 ?        00:00:00 redis-server 0.0.0.0:6379
root      20981  16465  0 21:55 pts/0    00:00:00 grep --color=auto redis

slave1操作: 配置文件比master增加一条操作

[root@slave1 myredis]# echo "replicaof 192.168.184.200  6379" >> redis.conf

#replicaof master主机IP 端口

slave2操作与slave1完全一致

四、验证

主机操作
[root@master myredis]# redis-cli
127.0.0.1:6379> info Replication
从机操作
[root@slave1 myredis]# redis-cli
127.0.0.1:6379> info Replication
主机操作
[root@master myredis]# redis-cli
127.0.0.1:6379> set name xmj
OK
从机操作
[root@slave1 myredis]# redis-cli
127.0.0.1:6379> get name
"xmj"

五、每台机器安装哨兵

master操作

cp /usr/local/redis-6.2.6/sentinel.conf .
cat sentinel.conf | grep -v "#" | grep -v "^$"  > sentinel_master.conf && rm -rf ./sentinel.conf
[root@master myredis]# redis-sentinel sentinel_master.conf

对sentinel_master.conf 进行修改

将127.0.0.1替换为masterip
sentinel monitor mymaster $masterip 6379 2

slave1

[root@slave1 myredis]# cp /usr/local/redis-6.2.6/sentinel.conf .
[root@slave1 myredis]# cat sentinel.conf | grep -v "#" | grep -v "^$"  > sentinel_slave1.conf && rm -rf ./sentinel.conf

同上进行修改

slave2

[root@slave2 myredis]# cp /usr/local/redis-6.2.6/sentinel.conf .

[root@slave2 myredis]# cat sentinel.conf | grep -v "#" | grep -v "^$"  > sentinel_slave2.conf && rm -rf ./sentinel.conf

同上进行修改

验证哨兵

关闭master
[root@master ~]# ps -ef | grep redis
root      61478      1  0 18:43 ?        00:00:04 redis-server 0.0.0.0:6379
root      74495   7784  0 19:32 pts/0    00:00:00 redis-sentinel *:26379 [sentinel]
root      75564  74642  0 19:37 pts/1    00:00:00 grep --color=auto redis
[root@master ~]# redis-cli -p 6379 shutdown
[root@master ~]# ps -ef | grep redis
root      74495   7784  0 19:32 pts/0    00:00:01 redis-sentinel *:26379 [sentinel]
root      75895  74642  0 19:38 pts/1    00:00:00 grep --color=auto redis

登录slave2 : 202 已经成为master

重启原master:

结论:重启原master发现,原master成为了slave,不会变成master

posted @ 2022-02-18 14:07  i小杰  阅读(143)  评论(0)    收藏  举报