Redis 搭建主从复制

Redis 主从介绍

Redis 支持主从复制功能,可以通过执行 slaveof(Redis5 以后改成 replicaof)或者在配置文件中设置 slaveof(Redis5 以后改成 replicaof)来开启复制功能

主可写从不可写 主挂了,从不可为主

主 Redis 配置

无需多余的配置

从 Redis 配置

修改从服务器上的 redis.conf 文件:

# slaveof <masterip> <masterport> 
# 表示当前【从服务器】对应的【主服务器】的IP是192.168.10.135,端口是6379。 
replicaof 127.0.0.1 6379

Redis 安装启动

#第一步:安装 C 语言需要的 GCC 环境
yum install -y gcc-c++ 
yum install -y wget
#第二步:下载并解压缩 Redis 源码压缩包
wget http://download.redis.io/releases/redis-5.0.5.tar.gz 
tar -zxf redis-5.0.5.tar.gz
#第三步:编译 Redis 源码,进入 redis-5.0.5 目录,执行编译命令
cd redis-5.0.5/src 
make
#第四步:安装 Redis,需要通过 PREFIX 指定安装路径
mkdir /usr/redis -p 
make install PREFIX=/usr/redis
#复制conf
cp redis.conf /usr/redis/bin/
cp sentinel.conf /usr/redis/bin/
#修改redis.conf
vim redis.conf
#注释掉则不限于本机器访问
#bind 127.0.0.1
#no 允许外界访问
protected-mode no
#yes 守护进程后台启动
daemonize yes
#占用窗口启动 --不可以被远程访问
./redis-server
#关闭
control + c
#不占用窗口启动 --不可以被远程访问
./redis-server & 
#守护进程后台启动 --可以被远程访问
 ./redis-server redis.conf
#守护进程后台启动关闭
./redis-cli shutdown  
#查看进程
ps -ef |grep redis
root       7891   1977  0 17:14 pts/1    00:00:04 ./redis-server *:6379
#关闭进程
kill -9 7891
#客户端启动
./redis-cli -h 127.0.0.1 -p 6379
# 关闭centos的防火墙
#systemctl stop firewalld
# 设置centos防火墙不开机自启动
#systemctl disable firewalld.service

Redis 主从搭建

复制 redis 分别为 一个 master 和两个 slave

cd /usr
➜  /usr cp -r redis redis-master
➜  /usr ls
bin  etc  games  include  lib  lib64  libexec  local  redis  redis-master  sbin  share  src  tmp
➜  /usr mkdir redis-ms
➜  /usr cp -r redis redis-ms/redis-slave1
➜  /usr cp -r redis redis-ms/redis-slave2
➜  /usr mv redis-master redis-ms/
➜  /usr ls
bin  etc  games  include  lib  lib64  libexec  local  redis  redis-ms  sbin  share  src  tmp
➜  /usr cd redis-ms
➜  redis-ms cd redis-slave1
➜  redis-slave1 cd bin
➜  bin vim redis.conf 

修改 redis-salve1 的 redis.conf 内容为

replicaof 127.0.0.1 6379
port 6381

修改 redis-salve2 的 redis.conf 内容为

replicaof 127.0.0.1 6379
port 6382

分别重启三台 redis 服务

cd /usr/redis-ms/redis-slave2/bin
./redis-server redis.conf
cd /usr/redis-ms/redis-slave1/bin
./redis-server redis.conf
cd /usr/redis-ms/redis-master/bin
./redis-server redis.conf

查看是否启动成功

➜  bin ps -ef | grep redis
root       2696      1  0 8月05 ?       00:04:31 ./redis-server *:6379
root       6800      1  0 16:31 ?        00:00:00 ./redis-server *:6382
root       6812      1  0 16:32 ?        00:00:00 ./redis-server *:6381
root       6829   6712  0 16:33 pts/1    00:00:00 grep --color=auto

分别对主机和 slave 进行操作

master

➜  bin ./redis-cli
127.0.0.1:6379> set notion allinone
OK
127.0.0.1:6379> get notion
"allinone"
127.0.0.1:6379> set todo mic
OK
127.0.0.1:6379> get todo
"mic"
127.0.0.1:6379> quit
➜  bin kill -9 2696
➜  bin ./redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused

slave1

➜  bin ./redis-cli -p 6381
127.0.0.1:6381> get notion
"allinone"
127.0.0.1:6381> set todo mic1
(error) READONLY You can't write against a read only replica.
127.0.0.1:6381> 
127.0.0.1:6381> set wps w1
(error) READONLY You can't write against a read only replica.

slave2

➜  bin ./redis-cli -p 6382
127.0.0.1:6382> get notion
"allinone"
127.0.0.1:6382> set todo mic1
(error) READONLY You can't write against a read only replica.
127.0.0.1:6382> set wps w2
(error) READONLY You can't write against a read only replica.

可以看到主库 负责读写,自动同步从库

从库只能读不能写,主库挂掉,从库无法上位

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值