1.创建公共配置文件
所有配置文件添加到以下目录:
/xxxx/redis-slave-master
创建公共的redis配置文件,直接使用redis的默认配置文件,修改以下配置项:
bind 127.0.0.1
daemonize yes 后台启动
requirepass 123456 登录密码
2.创建master服务的配置文件
在
/xxxx/redis-slave-master
目录中创建redis-master.conf文件,并添加以下配置内容:
## 公共配置配置相关
include /xxxx/redis-slave-master/redis-commom.conf
## 监听端口
port 7001
## 后台运行的时候生成的进程文件
pidfile /var/run/redis7001.pid
## 日志文件路径和名称
logfile "/xxxx/redis-slave-master/log/master"
## 持久化数据库文件
dbfilename dump7001.rdb
## 数据库文件目录
dir /xxxx/redis-slave-master/redis-dbfile
3.添加slave的配置文件
在
/xxxx/redis-slave-master
目录下添加redis-slave1.conf配置文件
配置内容为:
## 公共配置配置相关
include /xxxx/redis-slave-master/redis-commom.conf
port 7002
pidfile /var/run/redis7002.pid
logfile "/xxxx/redis-slave-master/log/slave1"
dbfilename dump7002.rdb
dir /xxxx/redis-slave-master/redis-dbfile
## slave-master相关配置
slaveof 127.0.0.1 7001
masterauth 123456
slave-read-only yes
4.启动master和slave服务
切换到配置文件目录:
cd /xxxx/redis-slave-master
输入以下命令,启动master和slave服务
redis-server redis-master.conf
redis-server redis-slave1.conf
输入:
ps -aux|grep redis
如果输出以下内容:
root 10739 0.0 0.2 142912 5412 ? Ssl 17:14 0:00 redis-server 127.0.0.1:7001
root 10748 0.0 0.2 142912 5384 ? Rsl 17:14 0:00 redis-server 127.0.0.1:7002
启动成功。
5.验证Master/Slave模式配置成功
使用redis-cli分别连接slave和master数据库:
redis-cli -p 7001 -a 123456
redis-cli -p 7002 -a 123456
在连接master的客户端中添加数据:
set master-key test
在连接slave的客户端中输入:
get master-key
如果能查询到:
"test"
则redis的slave-master配置成功。
6.slave中写入数据测试
在连接slave的客户端中输入:
set write-test test
会返回以下错误:
(error) READONLY You can't write against a read only slave.
这个因为在slave的服务中配置了只读模式。
7.redis日志文件分析:
10739:M 21 Mar 17:14:31.568 * DB loaded from disk: 0.000 seconds
10739:M 21 Mar 17:14:31.568 * The server is now ready to accept connections on port 7001
10739:M 21 Mar 17:14:38.962 * Slave 127.0.0.1:7002 asks for synchronization
10739:M 21 Mar 17:14:38.962 * Full resync requested by slave 127.0.0.1:7002
10739:M 21 Mar 17:14:38.963 * Starting BGSAVE for SYNC with target: disk
10739:M 21 Mar 17:14:38.963 * Background saving started by pid 10751
10751:C 21 Mar 17:14:38.993 * DB saved on disk
10751:C 21 Mar 17:14:38.994 * RDB: 2 MB of memory used by copy-on-write
10739:M 21 Mar 17:14:39.082 * Background saving terminated with success
10739:M 21 Mar 17:14:39.083 * Synchronization with slave 127.0.0.1:7002 succeeded
8.使用场景
一般用于读写分离