1. 程式人生 > >百萬PV架構中redis快取服務群集部署

百萬PV架構中redis快取服務群集部署

redis簡介

redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)、zset(sorted set --有序集合)和hash(雜湊型別)。這些資料型別都支援push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支援各種不同方式的排序。與memcached一樣,為了保證效率,資料都是快取在記憶體中。區別的是redis會週期性的把更新的資料寫入磁碟或者把修改操作寫入追加的記錄檔案,並且在此基礎上實現了master-slave(主從)同步。

案例環境

主機 IP地址 角色
Centos7 192.168.71.134 redis-master
Centos7 192.168.71.129 redis-slave

搭建過程

1、主從安裝redis
[[email protected] ~]# yum install epel-release -y
[[email protected] ~]# yum install redis -y
2、主伺服器修改配置檔案

[[email protected]
~]# vim /etc/redis.conf bind 0.0.0.0 #監聽任意埠

3、從伺服器修改配置檔案

[[email protected] ~]# vim /etc/redis.conf
bind 0.0.0.0           #監聽任意埠
# slaveof <masterip> <masterport>
slaveof 192.168.71.128 6379    #指向主伺服器的ip和埠

4、主從伺服器開啟服務

[[email protected] ~]# systemctl start redis

百萬PV架構中redis快取服務群集部署
5、驗證同步功能(記得關閉防火牆)

主伺服器上登陸並寫入內容
[[email protected] ~]# redis-cli -h 192.168.71.134 -p 6379
192.168.71.134:6379> set abc 111
OK
192.168.71.134:6379> get abc
"111"


從伺服器登陸檢視內容
[[email protected] ~]# redis-cli -h 192.168.71.129 -p 6379
192.168.71.129:6379> get abc
"111"

同步功能到這步算完成了,接下來搭建主從功能

6、主伺服器主從設定

[[email protected] ~]# vim /etc/redis-sentinel.conf
17行 protected-mode no
69行 sentinel monitor mymaster 192.168.71.134 6379 1 #master的地址,埠,從伺服器1臺
98行 sentinel down-after-milliseconds mymaster 300 #設定切換時間

7、開啟服務(從伺服器不需要做任何配置,只需開啟服務)

[[email protected] ~]# systemctl start redis-sentinel.service

8、主伺服器上檢視主從狀態
[[email protected] ~]# redis-cli -h 192.168.71.134 -p 26379 info sentinel
百萬PV架構中redis快取服務群集部署

9、宕掉一臺redis,再次檢視主從狀態
[[email protected] ~]# systemctl stop redis
百萬PV架構中redis快取服務群集部署

10、再次開啟服務後master不會回到主服務上,再次宕掉從伺服器即可

[email protected] ~]# systemctl stop redis   #從伺服器宕掉redis
[[email protected] ~]# systemctl start redis  #主伺服器開啟redis
[[email protected] ~]# redis-cli -h 192.168.71.134 -p 26379 info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.71.134:6379,slaves=1,sentinels=3