Redis部署-docker-離線方式


redis部署

redis docker部署

docker pull registry.docker-cn.com/library/redis
docker-compose.yml
version: '2'
services:
   redis:
      image: redis:latest
      container_name: redis
      restart: always
      ports:
        - 3308:6379
      volumes:
        - /data/home/redis/config/redis.conf:/usr/local/etc/redis/redis.conf
        - /data/home/redis/data:/data
      command: redis-server /usr/local/etc/redis/redis.conf

離線部署redis

【准備】
1.Centos7.x系統
2.安裝gcc
3.redis安裝包

【防火牆配置】

查看防火牆狀態

firewall-cmd --state

停止firewall

systemctl stop firewalld.service

禁止firewall開機啟動

systemctl disable firewalld.service 


關閉selinux 
進入到/etc/selinux/config文件

vi /etc/selinux/config
將SELINUX=enforcing改為SELINUX=disabled



【安裝】
tar -zxvf redis-5.0.5.tar.gz
編譯
make
安裝
make PREFIX=/usr/local/redis install    


在/usr/local/redis/下創建redis.conf和sentinel.conf文件

主:redis.conf
port 6379
bind 192.168.18.190  #本機ip
requirepass "myredis"   #認證密碼
daemonize yes   #支持后台運行,默認值為no
logfile "6379.log"   #日志文件
dbfilename "dump-6379.rdb"  #數據庫文件
dir "./"  

#如若master設置了認證密碼,那么所有redis數據節點都配置上masterauth屬性


從:redis.conf
port 6379
bind 192.168.18.191
requirepass "myredis"  #認證密碼
daemonize yes
logfile "6379.log"
dbfilename "dump-6379.rdb"
dir "./"
#如若master設置了認證密碼,那么所有redis數據節點都配置上masterauth屬性
masterauth "myredis"  #主庫密碼
slaveof 192.168.18.190 6379

【sentinel】
port 26379
#開啟守護進程
daemonize yes
dir "/tmp"  #Sentinel服務運行時使用的臨時文件夾
#指定日志文件存放位置
logfile "26379.log"
#指定主的IP 端口 “2”代表有兩個哨兵進程發現主服務器宕機便選取一個從服務器為主
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.18.190 6379 2   #主master
#redis數據master節點設置了認證,則需要如下配置
sentinel auth-pass mymaster myredis               #認證密碼
sentinel down-after-milliseconds mymaster 30000
sentinel config-epoch mymaster 1
sentinel failover-timeout mymaster 180000



【配置文件說明:】
1. port :當前Sentinel服務運行的端口

2. dir : Sentinel服務運行時使用的臨時文件夾

3.sentinel monitor master001 192.168.110.101 6379 2:Sentinel去監視一個名為master001的主redis實例,這個主實例的IP地址為本機地址192.168.110.101,端口號為6379,而將這個主實例判斷為失效至少需要2個 Sentinel進程的同意,只要同意Sentinel的數量不達標,自動failover就不會執行

4.sentinel down-after-milliseconds master001 30000:指定了Sentinel認為Redis實例已經失效所需的毫秒數。當實例超過該時間沒有返回PING,或者直接返回錯誤,那么Sentinel將這個實例標記為主觀下線。只有一個 Sentinel進程將實例標記為主觀下線並不一定會引起實例的自動故障遷移:只有在足夠數量的Sentinel都將一個實例標記為主觀下線之后,實例才會被標記為客觀下線,這時自動故障遷移才會執行

5.sentinel parallel-syncs master001 1:指定了在執行故障轉移時,最多可以有多少個從Redis實例在同步新的主實例,在從Redis實例較多的情況下這個數字越小,同步的時間越長,完成故障轉移所需的時間就越長

6.sentinel failover-timeout master001 180000:如果在該時間(ms)內未能完成failover操作,則認為該failover失敗

7.sentinel notification-script <master-name> <script-path>:指定sentinel檢測到該監控的redis實例指向的實例異常時,調用的報警腳本。該配置項可選,但是很常用


redis-cli -h 192.168.18.190 -p 6379 -a 123456 info replication
redis-cli -h 192.168.18.191 -p 6379 -a 123456 info replication
redis-cli -h 192.168.18.191 -p 6379 -a 123456 info replication
redis-server /etc/redis/6379.conf 	
redis-server /etc/redis/6379.conf #啟動redis
redis-cli -h 192.168.18.190 -p 6379 -a 123456 shutdown  #關閉redis



【連接】
redis-cli -h 192.168.18.190 -p 6379 -a myredis
【關閉】 
redis-cli -h 192.168.18.190 -p 6379 -a myredis shutdown


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM