1. 程式人生 > >linux 下Redis 5.0主從複製(一主二從)的搭建

linux 下Redis 5.0主從複製(一主二從)的搭建

文件結構如下:

 

一、環境說明:

作用

IP地址

作業系統版本

安裝目錄

主庫

172.16.10.80

6379

Redhat 6.7

/redis5.0/redis-5.0.0

slave1

172.16.10.81

6380

Redhat 6.7

/redis5.0/redis-5.0.0

slave2

172.16.10.82

6381

Redhat 6.7

/redis5.0/redis-5.0.0

 

Redis一主二從主要是用於讀寫分離和容災,配置是配從不配主。

二、安裝

Redis 一主二從的安裝其實跟單機的安裝區別不大,本次安裝我們可以先修改引數檔案後在安裝,可以參考我的單機的安裝部落格:

https://www.cnblogs.com/hmwh/p/9831091.html

 

2.1.   配置yum

a)   關閉防火牆

vi /etc/selinux/config

 

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

setenforce 0

 

service iptables stop

chkconfig iptables off

 

 

b)   三臺伺服器配置好yum

mount /dev/sr0 /mnt/

cd /etc/yum.repos.d/

mv redhat.repo redhat.repo.bak

mv rhel-source.repo rhel-source.repo.bak

 

vi /etc/yum.repos.d/rhel-debuginfo.repo

[rhel-debuginfo]

name=Red Hat Enterprise Linux $releasever - $basearch - Debug

baseurl=file:///mnt/

enabled=1 

gpgcheck=0   

 

yum -y install make gcc*

2.2.   引數配置

mkdir -p /redis5.0

把解壓包上傳到/redis5.0

tar -zxvf redis-5.0.0.tar.gz

需要修改以及註釋的引數如下:

Master:

cd /redis5.0/redis-5.0.0

 

save 900 1

#save 300 10

#save 60 10000

bind 172.6.10.80 

daemonize yes

loglevel warning

timeout 60

logfile "6379.log"

dbfilename dump6379.rdb

maxmemory-policy volatile-ttl

auto-aof-rewrite-min-size 10GB

masterauth redis   --主庫的密碼(本機可以不配置)

 

 

Slave1:

cd /redis5.0/redis-5.0.0

 

save 900 1

#save 300 10

#save 60 10000

bind 172.6.10.81

daemonize yes

loglevel warning

logfile "6380.log"

dbfilename dump6380.rdb

pidfile /var/run/redis_6380.pid

port 6380

timeout 60

maxmemory-policy volatile-ttl

auto-aof-rewrite-min-size 10GB

slaveof 172.16.10.80 6379

masterauth redis   --主庫的密碼

 

Salve2:

cd /redis5.0/redis-5.0.0

 

save 900 1

#save 300 10

#save 60 10000

bind 172.6.10.82

daemonize yes

loglevel warning

port 6381

timeout 60

dbfilename dump6381.rdb

logfile "6381.log"

pidfile /var/run/redis_6381.pid

maxmemory-policy volatile-ttl

auto-aof-rewrite-min-size 10GB

slaveof 172.16.10.80 6379

masterauth redis   --主庫的密碼

 

2.3.   安裝

cd /redis5.0/redis-5.0.0

make

make install

 

 

安裝完成。

啟動如下:

redis-server /redis5.0/redis-5.0.0/redis6379.conf

redis-server /redis5.0/redis-5.0.0/redis6380.conf

redis-server /redis5.0/redis-5.0.0/redis6381.conf

 

 

 

 

由於引數已經修改完了,後面修改密碼:

config set requirepass "redis"

 

 

 

並且寫入配置檔案:

 

 

例如關閉提示需要密碼就說明修改成功。

同理修改下面兩臺伺服器:

 

 

主從複製的密碼配置:

 

 

檢視主機角色資訊:

 

 

檢視從機一配置:

 

 

檢視從機二配置:

 

 

可以看出同步狀態正常。

 

三、測試

 

 

 

 

 

 

3.1.  注意

1、如果沒有把slaveof 引數配置到引數檔案中,從庫重啟後需要重新slaveof;即從庫會變成主庫(沒有配置slaveof引數檔案)

2、在主從搭建完成後,後面新增的從庫slaveof後,會自動把資料從主庫同步過來,生產上會有一定的效能影響。

3、從機只有讀的許可權,主機才能夠寫操作。