本文主要介紹redis的安裝,使用到的軟體版本:Java 1.8.0_191、Redis 5.0.8、Centos 7.6,
1、單機安裝
1.1、下載并解壓redis
下載地址:https://redis.io/download
解壓:tar zxvf redis-5.0.8.tar.gz
1.2、編譯安裝并創建日志目錄
cd redis-5.0.8 make
mkdir logs
1.3、修改組態檔redis.conf
logfile "/home/hadoop/app/redis-5.0.8/logs/redis.log"
daemonize on #啟動守護行程
requirepass 123456
1.4、啟動
cd redis-5.0.8/src
./redis-server ../redis.conf
2、主從模式安裝
2.1、規劃
| ip | 埠 | 主從 |
| 10.49.196.20 | 6379 | 主 |
| 10.49.196.21 | 6379 | 從 |
| 10.49.196.22 | 6379 | 從 |
2.2、在主節點上安裝并分發到從節點
10.49.196.20上安裝:
cd redis-5.0.8 make
mkdir logs
修改redis.conf:
bind 10.49.196.20 127.0.0.1
logfile "/home/hadoop/app/redis-5.0.8/logs/redis.log" daemonize on requirepass 123456
分發整個包到從節點:
scp -r ./redis-5.0.8 [email protected]:/home/hadoop/app scp -r ./redis-5.0.8 [email protected]:/home/hadoop/app
2.3、修改從節點組態檔redis.conf
10.49.196.21:
bind 10.49.196.21 127.0.0.1
logfile "/home/hadoop/app/redis-5.0.8/logs/redis.log"
daemonize on
requirepass 123456
slaveof 10.49.196.20 6379
masterauth 123456
10.49.196.22:
bind 10.49.196.22 127.0.0.1
logfile "/home/hadoop/app/redis-5.0.8/logs/redis.log"
daemonize on
requirepass 123456
slaveof 10.49.196.20 6379
masterauth 123456
2.4、分別啟動各節點
cd redis-5.0.8/src
./redis-server ../redis.conf
3、哨兵模式安裝
3.1、規劃
| 服務型別 | ip | 埠 | 主從 |
| redis | 10.49.196.20 | 6379 | 主 |
| redis | 10.49.196.21 | 6379 | 從 |
| redis | 10.49.196.22 | 6379 | 從 |
| sentinel | 10.49.196.20 | 26379 | |
| sentinel | 10.49.196.21 | 26379 | |
| sentinel | 10.49.196.22 | 26379 |
3.2、主從模式安裝
哨兵模式時在主從模式的基礎上增加哨兵行程;主從模式的安裝可以參考1.2
3.3、哨兵配置
在10.49.196.20、10.49.196.21、10.49.196.22上修改sentinel.conf:
daemonize yes logfile "/home/hadoop/app/redis-5.0.8/logs/sentinel.log" sentinel monitor mymaster 10.49.196.20 6379 2 #sentinel monitor <主節點別名> <主節點host> <主節點埠> <票數> sentinel auth-pass mymaster 123456
3.4、啟動
先啟動各節點的redis服務,再啟動各節點的sentinel服務:
cd redis-5.0.8/src ./redis-sentinel ../sentinel.conf
4、集群模式安裝
4.1、集群安裝
4.1.1、規劃
集群安裝至少需要6個節點,規劃如下:
| 服務型別 | ip | 埠 |
| redis | 10.49.196.20 | 7000 |
| redis | 10.49.196.21 | 7000 |
| redis | 10.49.196.22 | 7000 |
| redis | 10.49.196.20 | 7001 |
| redis | 10.49.196.21 | 7001 |
| redis | 10.49.196.22 | 7001 |
4.1.2、在10.49.196.20上編譯安裝并創建日志目錄
cd redis-5.0.8 make
mkdir logs
4.1.3、修改redis.conf
bind 10.49.196.20 127.0.0.1 port 7000 logfile "/home/hadoop/app/redis-5.0.8-7000/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
masterauth 123456
4.1.4、拷貝并分發redis
在10.49.196.20上重命名redis安裝目錄并拷貝一個副本:
mv redis-5.0.8 redis-5.0.8-7000 cp -r redis-5.0.8-7000 redis-5.0.8-7001
分發到10.40.196.21、10.40.196.22
scp ./redis-5.0.8-7000 hadoop@10.40.196.21:/home/hadoop/app scp ./redis-5.0.8-7001 hadoop@10.40.196.21:/home/hadoop/app scp ./redis-5.0.8-7000 hadoop@10.40.196.22:/home/hadoop/app scp ./redis-5.0.8-7001 hadoop@10.40.196.22:/home/hadoop/app
4.1.5、修改各redis副本redis.conf中系結ip、埠、日志路徑
最終各組態檔如下
10.49.196.20:/home/hadoop/app/redis-5.0.8-7000/redis.conf:
bind 10.49.196.20 127.0.0.1 port 7000 logfile "/home/hadoop/app/redis-5.0.8-7000/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
masterauth 123456
10.49.196.20:/home/hadoop/app/redis-5.0.8-7001/redis.conf:
bind 10.49.196.20 127.0.0.1 port 7001 logfile "/home/hadoop/app/redis-5.0.8-7001/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
masterauth 123456
10.49.196.21:/home/hadoop/app/redis-5.0.8-7000/redis.conf:
bind 10.49.196.21 127.0.0.1 port 7000 logfile "/home/hadoop/app/redis-5.0.8-7000/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
masterauth 123456
10.49.196.21:/home/hadoop/app/redis-5.0.8-7001/redis.conf:
bind 10.49.196.21 127.0.0.1 port 7001 logfile "/home/hadoop/app/redis-5.0.8-7001/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
masterauth 123456
10.49.196.21:/home/hadoop/app/redis-5.0.8-7000/redis.conf:
bind 10.49.196.22 127.0.0.1 port 7000 logfile "/home/hadoop/app/redis-5.0.8-7000/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
masterauth 123456
10.49.196.22:/home/hadoop/app/redis-5.0.8-7001/redis.conf:
bind 10.49.196.22 127.0.0.1 port 7001 logfile "/home/hadoop/app/redis-5.0.8-7001/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
masterauth 123456
4.1.6、啟動各個節點
./redis-server ../redis.conf
4.1.7、創建集群
redis-cli --cluster create 10.49.196.20:7000 10.49.196.20:7001 10.49.196.21:7000 10.49.196.21:7001 10.49.196.22:7000 10.49.196.22:7001 --cluster-replicas 1 -a 123456
創建成功會有如下類似日志:

4.2、集群管理
4.2.1、查看集群
./redis-cli --cluster check 127.0.0.1:7000 -a 123456

也可以登錄redis-cli后使用如下命令查看redis集群資訊:
127.0.0.1:7000> cluster nodes 127.0.0.1:7000> cluster info
4.2.2、增加節點
./redis-cli --cluster add-node NEW-NODE CLUSTER-NODE [-a PASSWORD]
打算增加10.49.196.10:7000(主)、10.49.196.10:7001(備) 兩個節點
./redis-cli --cluster add-node 10.49.196.10:7000 10.49.196.20:7000 -a 123456 ./redis-cli --cluster add-node 10.49.196.10:7001 10.49.196.20:7000 -a 123456
設定主備關系:
./redis-cli -c -h 10.49.196.10 -p 7001 -a 123456 10.49.196.10:7001> cluster replicate e1341ea1fe323abb55f5a0b42129800cb12d46c9
e1341ea1fe323abb55f5a0b42129800cb12d46c9為10.49.196.10:7000的節點id,
操作完成后結果入下:

4.2.3、給新的主節點分配槽位
./redis-cli --cluster reshard 10.49.196.20:7000 -a 123456
執行命令后會讓用戶選擇需移動的槽位數、槽位移動到的節點、從哪個節點移動槽位,

4.2.4、洗掉節點
從節點可以直接洗掉,主節點需先把改節點上槽位移動到其他的主節點上,然后再洗掉,
這里假設要洗掉新增的兩個節點10.49.196.10:7000、10.49.196.21:7001;先需把10.49.196.10:7000上的槽位移到其他的節點:

洗掉節點,先洗掉從節點,再洗掉主節點:
./redis-cli --cluster del-node 10.49.196.10:7001 9f907183de2e165b7de9d130ea228cda5811f88c -a 123456 ./redis-cli --cluster del-node 10.49.196.10:7000 e1341ea1fe323abb55f5a0b42129800cb12d46c9 -a 123456
洗掉后,又回到3+3的集群:

4.2.4、重啟集群
依次停止各個redis節點,再依次啟動即可,
5、小結
本文主要介紹了redis的各種模式的安裝,單機模式主要用于測驗學習,主從模式可用性沒有哨兵模式高,集群模式相對較復雜,所有一般實際使用中會使用哨兵模式,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/170362.html
標籤:Java
