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
日常笔记,仅供个人学习

浙公网安备 33010602011771号