1. 程式人生 > >redis主從配置(一主兩從,三哨兵)linux

redis主從配置(一主兩從,三哨兵)linux

下載redis-4.0.6.tar.gz(當前最新穩定版)
地址:http://download.redis.io/releases/
安裝目錄:usr/local/redis
安裝包下載目錄:/opt/redis

安裝命令如下
mkdir /usr/local/redis
cd /opt
tar zxvf redis-4.0.6.tar.gz
cd redis-4.0.6.tar.gz
make PREFIX=/usr/local/redis install

make失敗時檢視時候安裝gcc環境

如未安裝可通過
yum install gcc

將Redis啟動指令碼新增至linux系統init.d啟動目錄中

cp /opt/redis-4.0.6/utils/redis_init_script /etc/init.d/reids
此命令將redis_init_script複製至init.d目錄下並重命名為redis

添加註冊服務
chkconfig --add redis
這時會報錯  redis don't support chkconfig

修改redis指令碼

vim /etc/init.d/redis
在第二行增加  #chkconfig:2345 80 90

將以下兩處地址更換為你的安裝路徑
EXEC=/usr/local/redis/bin/redis-server   
CLIEXEC=/usr/local/redis/bin/redis-cli

redis開啟的命令,以後臺執行的方式執行
$EXEC $CONF &
&,即是將服務轉至後臺執行的意思,否則會導致redis佔據前臺無法執行其他命令

mkdir /etc/redis
cp /opt/redis-4.0.6/redis.conf /etc/redis/6379.conf

這時可註冊redis服務
chkconfig --add redis
啟動服務 service redis start

新增redis命令至環境變數中
vim /etc/profile
export PATH="$PATH:/usr/local/redis/bin"

source /etc/profile

啟用認證並設定密碼
vim /etc/redis/6379.conf
找到requirepass欄位 去掉#號後可在後面新增密碼
requirepass -Tq8UA7zredis
密碼生效需重啟計算機
進入redis

redis-cli驗證redis啟動情況


開啟遠端訪問
redis預設不開啟遠端認證
1>修改6379.conf配置檔案註釋掉bind 127.0.0.1 開啟遠端訪問 (應用bind可指定固定IP遠端訪問)
2>預設不是守護程序方式執行,這裡可以修改
daemonize yes
3>禁用保護模式
protected-mode no
Redis伺服器設定密碼後,使用service redis stop 會出現以下資訊:

執行service redis stop
Stopping ...
OK
(error) NOAUTH Authentication required.
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...

出現這樣的錯誤資訊,redis 這時是沒有停止服務的。
修改vim /etc/init.d/redis
$CLIEXEC -a "password" -p $REDISPORT shutdown
password為你設定的密碼
主從配置
10 .36.2.111 6379 主
10.36.2.112 6379
兩臺安裝redis服務的主機

主不需要配置
從 redis.conf配置修改
#配置主節點資訊    
slaveof 10.36.2.111 6379
#主節點密碼    
masterauth "123456"

哨兵配置
sentinel.conf配置如下
sentinel monitor mymaster 10.36.2.111 6379 1
1代表當1個哨兵發現問題
sentinel down-after-milliseconds mymaster 3000  
sentinel failover-timeout mymaster 10000
#redis主節點密碼  
sentinel auth-pass mymaster 123456
#保護模式  
protected-mode no

注意 先啟動redis 再啟動哨兵 注意linux開啟埠
redis-server /home/redis/redis/redis.conf

redis-sentinel /home/redis/redis/sentinel.conf

另外主redis也要設定#主節點密碼    

masterauth "123456"  防止主庫掛掉切換從庫為主庫,原主庫再啟動時連線不到現主庫