在上一篇文章中介绍了Mac下搭建Redis5-单机模式,下面介绍Mac下搭建Redis5的主从模式,搭建过程基于上一篇的经验
本文件的配置文件及脚本在gitee上可查看 https://gitee.com/akonvm/redis-demo/tree/master/masterslave
1. 下载、解压及编译
在官网下载页面下载最新版本,我用的是5.0.7版本
按下面命令解压和编译
$ cd /Users/ankang/develop
$ tar -zxvf redis-5.0.7.tar.gz
$ cd redis-5.0.7/
$ make
// 为了登录方便,添加快捷命令
$ ln -s /Users/ankang/develop/redis-5.0.7/src/redis-cli /usr/local/bin/redis-cli
2. 设置redis配置文件
演示过程在redis-demo
目录中进行
$ cd /Users/ankang/develop/redis-demo
// 存放配置文件目录
$ mkdir -p masterslave/conf
// 存放持久文件目录
$ mkdir -p masterslave/data
// 存放日志文件目录
$ mkdir -p masterslave/logs
$ cd masterslave/conf/
// 拷贝三份redis配置文件模板
$ cp /Users/ankang/develop/redis-5.0.7/redis.conf redis-6379.conf
$ cp /Users/ankang/develop/redis-5.0.7/redis.conf redis-6380.conf
$ cp /Users/ankang/develop/redis-5.0.7/redis.conf redis-6381.conf
redis-6379.conf
相关配置如下
# 绑定本机回环地址(本机调用时)或者本机私有IP(机器间调用时)
bind 127.0.0.1
# 启用保护模式
protected-mode yes
# 设定端口
port 6379
# 修改为守护模式,使之可以后台运行
daemonize yes
# 设置进程文件
pidfile "/var/run/redis-6379.pid"
# 设置进日志文件
logfile "/Users/ankang/develop/redis-demo/masterslave/logs/redis-6379.log"
# 指定本地持久化文件名
dbfilename "dump-6379.rdb"
# 指定本地持久化文件目录
dir "/Users/ankang/develop/redis-demo/masterslave/data"
# 设置密码
requirepass "admin123"
redis-6380.conf
相关配置如下
# 绑定本机回环地址(本机调用时)或者本机私有IP(机器间调用时)
bind 127.0.0.1
# 启用保护模式
protected-mode yes
# 设定端口
port 6380
# 修改为守护模式,使之可以后台运行
daemonize yes
# 设置进程文件
pidfile "/var/run/redis-6380.pid"
# 设置进日志文件
logfile "/Users/ankang/develop/redis-demo/masterslave/logs/redis-6380.log"
# 指定本地持久化文件名
dbfilename "dump-6380.rdb"
# 指定本地持久化文件目录
dir "/Users/ankang/develop/redis-demo/masterslave/data"
# 设置密码
requirepass "admin123"
# 设置master的地址
replicaof 127.0.0.1 6379
# 设置master的密码
masterauth "admin123"
redis-6381.conf
相关配置如下
# 绑定本机回环地址(本机调用时)或者本机私有IP(机器间调用时)
bind 127.0.0.1
# 启用保护模式
protected-mode yes
# 设定端口
port 6381
# 修改为守护模式,使之可以后台运行
daemonize yes
# 设置进程文件
pidfile "/var/run/redis-6381.pid"
# 设置进日志文件
logfile "/Users/ankang/develop/redis-demo/masterslave/logs/redis-6381.log"
# 指定本地持久化文件名
dbfilename "dump-6381.rdb"
# 指定本地持久化文件目录
dir "/Users/ankang/develop/redis-demo/masterslave/data"
# 设置密码
requirepass "admin123"
# 设置master的地址
replicaof 127.0.0.1 6379
# 设置master的密码
masterauth "admin123"
3. 添加启动脚本
redis提供了启动脚本的模板,是redis-5.0.7/utils
目录下的redis_init_script
,但是在Mac系统下按配置文件中的设定生成pid文件,所以脚本中有关探测pid进行的命令都无效,这里只拷贝需要的内容。
redis-6379.sh
内容如下
#!/bin/sh
set -e
REDISPORT=6379
PASSWORD="admin123"
INSTALL_DIR="/Users/ankang/develop/redis-5.0.7"
DEMO_DIR="/Users/ankang/develop/redis-demo/masterslave"
EXEC="${INSTALL_DIR}/src/redis-server"
CLIEXEC="${INSTALL_DIR}/src/redis-cli"
CONF="${DEMO_DIR}/conf/redis-${REDISPORT}.conf"
case "$1" in
start)
echo "Starting Redis server..."
$EXEC $CONF
echo "Redis started"
;;
stop)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT -a $PASSWORD shutdown
echo "Waiting for Redis to shutdown ..."
sleep 2
echo "Redis stopped"
;;
*)
echo "Please use start or stop as first argument"
;;
esac
redis-6380.sh
和redis-6381.sh
可以拷贝redis-6379.sh
,对应修改中REDISPORT
变量的端口即可
4. 启动与关闭
启动按顺序执行如下命令
$ sh redis-6379.sh start
$ sh redis-6380.sh start
$ sh redis-6381.sh start
关闭使用如下命令
$ sh redis-6381.sh stop
$ sh redis-6380.sh stop
$ sh redis-6379.sh stop
```![redis (2).png](https://upload-images.jianshu.io/upload_images/12646629-2b22df6b8ff2a4f2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)