简介:
Redis主从复制和读写分离是两个不同的概念,下面将分别介绍这两个概念的实现方法。
- Redis主从复制:
Redis主从复制是指将一个Redis服务器(主服务器)的数据复制到其他Redis服务器(从服务器)的过程。主服务器负责写操作,而从服务器负责读操作。主从复制可以提高系统的读性能和数据的冗余备份。
- Redis读写分离:
Redis读写分离是指将读操作和写操作分别分配给不同的Redis服务器。写操作仍然由主服务器处理,而读操作则由多个从服务器处理,从而提高读性能。
需要注意的是,Redis主从复制和读写分离可以同时使用,通过将读操作发送到从服务器来提高读性能,并将写操作发送到主服务器来保证数据的一致性。
搭建:
Redis的安装可以参考我的另一篇文章:
http://t.csdn.cn/JNrcEhttp://t.csdn.cn/JNrcE
这里我们在一台虚拟机上模拟搭建3台redis服务端,一台主机,两台从机。
步骤一:
首先我们在/opt/redis/(没有redis目录的话先在opt目录下创建redis)目录下创建data、log、conf三个文件目录
mkdir -p /opt/redis/data
mkdir -p /opt/redis/log
mkdir -p /opt/redis/conf
步骤二:
然后我们将/usr/local/redis目录下的redis.conf文件复制一份到步骤一中创建好的/opt/redis/conf中,并将复制过来的redis.conf文件改名为redis-common.conf,该conf是所有redis服务端都要继承的公共配置文件(可以理解为父类的概念)
# 复制文件
cp /usr/local/redis/redis.conf /opt/redis/conf
# 将复制过来的文件改名
mv redis.conf redis-common.conf
步骤三: 修改reids-common.conf公共配置文件
1.注释bind 127.0.0.1
2.关闭保护模式,修改为no
3.修改为后台启动,改为yes
4.注释进程编号记录文件
5.注释公共日志文件
6.注释公共配置数据文件、修改数据文件路径
7.添加从服务器访问主服务器认证(设置了requirepass的需要添加)
8.添加访问认证
9.注释公共配置追加文件
步骤四:
添加3个服务的私有配置文件
# 在/opt/redis/conf 中添加
# 主服务器
touch redis-6379.conf
# 从服务器
touch redis-6380.conf
touch redis-6381.conf
分别将三个私有配置文件中添加下面这些配置(复制进去即可,注意最后一个配置)
#引用redis-common.conf公共配置文件
include /opt/redis/conf/redis-common.conf
#进程编号记录文件
pidfile /var/run/redis-6379.pid
#设置进程端口号
port 6379
#日志记录文件
logfile "/opt/redis/log/redis-6380.log"
#数据记录文件
dbfilename dump-6379.rdb
#追加文件名称
appendfilename "appendonly-6380.aof"
#上面的端口号要与配置文件的名称对应
-------------------------------------------------------------
#下面的配置不用在主服务器6379里配置,其他的从服务器配置文件需要配置
#备份服务器从属于6379推荐配置局域网IP
slaveof 192.168.10.x 6379
步骤五:
关闭防火墙
sudo ufw disable
步骤六:测试
# 查看当前是否有redis进程在运行
ps -ef | grep redis
# 如果存在则关闭进程
kill -9 PID
以相应的配置文件开启redis进程
/usr/local/bin/redis-server /opt/redis/conf/redis-6379.conf
/usr/local/bin/redis-server /opt/redis/conf/redis-6380.conf
/usr/local/bin/redis-server /opt/redis/conf/redis-6381.conf
# 然后查看是否开启redis进程
ps -ef | grep redis
开启客户端
/usr/local/bin/redis-cli -p 6379 -a 访问认证(密码)
/usr/local/bin/redis-cli -p 6380 -a 访问认证(密码)
/usr/local/bin/redis-cli -p 6381 -a 访问认证(密码)
在主服务器上可以查看到从服务器的信息
info replication
可以看到有两个从服务器6380和6381
至此,我们的redis集群的主从复制-读写分离就搭建好了,底层通过订阅推送实现。
搭建Redis集群-哨兵模式可以查看我的另一篇文章: