在上一篇文章中介紹了Mac下搭建Redis5-單機(jī)模式裳涛,下面介紹Mac下搭建Redis5的主從模式,搭建過程基于上一篇的經(jīng)驗(yàn)
本文件的配置文件及腳本在gitee上可查看 https://gitee.com/akonvm/redis-demo/tree/master/masterslave
1. 下載、解壓及編譯
在官網(wǎng)下載頁面下載最新版本,我用的是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. 設(shè)置redis配置文件
演示過程在redis-demo
目錄中進(jìn)行
$ 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
相關(guān)配置如下
# 綁定本機(jī)回環(huán)地址(本機(jī)調(diào)用時(shí))或者本機(jī)私有IP(機(jī)器間調(diào)用時(shí))
bind 127.0.0.1
# 啟用保護(hù)模式
protected-mode yes
# 設(shè)定端口
port 6379
# 修改為守護(hù)模式汪拥,使之可以后臺(tái)運(yùn)行
daemonize yes
# 設(shè)置進(jìn)程文件
pidfile "/var/run/redis-6379.pid"
# 設(shè)置進(jìn)日志文件
logfile "/Users/ankang/develop/redis-demo/masterslave/logs/redis-6379.log"
# 指定本地持久化文件名
dbfilename "dump-6379.rdb"
# 指定本地持久化文件目錄
dir "/Users/ankang/develop/redis-demo/masterslave/data"
# 設(shè)置密碼
requirepass "admin123"
redis-6380.conf
相關(guān)配置如下
# 綁定本機(jī)回環(huán)地址(本機(jī)調(diào)用時(shí))或者本機(jī)私有IP(機(jī)器間調(diào)用時(shí))
bind 127.0.0.1
# 啟用保護(hù)模式
protected-mode yes
# 設(shè)定端口
port 6380
# 修改為守護(hù)模式,使之可以后臺(tái)運(yùn)行
daemonize yes
# 設(shè)置進(jìn)程文件
pidfile "/var/run/redis-6380.pid"
# 設(shè)置進(jìn)日志文件
logfile "/Users/ankang/develop/redis-demo/masterslave/logs/redis-6380.log"
# 指定本地持久化文件名
dbfilename "dump-6380.rdb"
# 指定本地持久化文件目錄
dir "/Users/ankang/develop/redis-demo/masterslave/data"
# 設(shè)置密碼
requirepass "admin123"
# 設(shè)置master的地址
replicaof 127.0.0.1 6379
# 設(shè)置master的密碼
masterauth "admin123"
redis-6381.conf
相關(guān)配置如下
# 綁定本機(jī)回環(huán)地址(本機(jī)調(diào)用時(shí))或者本機(jī)私有IP(機(jī)器間調(diào)用時(shí))
bind 127.0.0.1
# 啟用保護(hù)模式
protected-mode yes
# 設(shè)定端口
port 6381
# 修改為守護(hù)模式篙耗,使之可以后臺(tái)運(yùn)行
daemonize yes
# 設(shè)置進(jìn)程文件
pidfile "/var/run/redis-6381.pid"
# 設(shè)置進(jìn)日志文件
logfile "/Users/ankang/develop/redis-demo/masterslave/logs/redis-6381.log"
# 指定本地持久化文件名
dbfilename "dump-6381.rdb"
# 指定本地持久化文件目錄
dir "/Users/ankang/develop/redis-demo/masterslave/data"
# 設(shè)置密碼
requirepass "admin123"
# 設(shè)置master的地址
replicaof 127.0.0.1 6379
# 設(shè)置master的密碼
masterauth "admin123"
3. 添加啟動(dòng)腳本
redis提供了啟動(dòng)腳本的模板迫筑,是redis-5.0.7/utils
目錄下的redis_init_script
,但是在Mac系統(tǒng)下按配置文件中的設(shè)定生成pid文件宗弯,所以腳本中有關(guān)探測pid進(jìn)行的命令都無效脯燃,這里只拷貝需要的內(nèi)容。
redis-6379.sh
內(nèi)容如下
#!/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
蒙保,對應(yīng)修改中REDISPORT
變量的端口即可
4. 啟動(dòng)與關(guān)閉
啟動(dòng)按順序執(zhí)行如下命令
$ sh redis-6379.sh start
$ sh redis-6380.sh start
$ sh redis-6381.sh start
關(guān)閉使用如下命令
$ 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)