内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

redis主從+sentinel故障轉(zhuǎn)移部署-創(chuàng)新互聯(lián)

redis的認(rèn)識

創(chuàng)新互聯(lián)建站自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計、成都做網(wǎng)站、成都網(wǎng)站制作、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設(shè)計師團隊。

redis是一個key-value存儲系統(tǒng)。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實現(xiàn)了master-slave(主從)同步。

redis集群原理:
redis集群好處: 容錯,可解決單節(jié)點redis問題;可擴展性,多節(jié)點部署;性能提升。
1)所有的redis節(jié)點彼此互聯(lián)(PING-PONG機制),內(nèi)部使用二進制協(xié)議優(yōu)化傳輸速度和帶寬。
2)節(jié)點的fail是通過集群中超過半數(shù)節(jié)點檢測失效才生效。
3)客戶端與redis節(jié)點直連,不需要中間proxy層,客戶端不需要連接集群所有節(jié)點,連接集群中任何一個節(jié)點即可。
4)redis-cluster把所有的物理節(jié)點映射到[0-16383]個槽slot上,cluster負(fù)責(zé)維護node<->slot<->value Redis cluster中內(nèi)置了16384個哈希槽,當(dāng)需要在redis集群中放置一個key-value時,redis先對key使用crc16算法算出一個結(jié)果,然后把結(jié)果對16384求余數(shù),這樣就保證每個key都會對應(yīng)到0-16383之間的哈希槽,redis會根據(jù)節(jié)點的數(shù)量大致均等的將哈希槽映射到不同的節(jié)點。


redis主從復(fù)制+sentinel故障轉(zhuǎn)移

環(huán)境:
OS:centos
redis版本:Redis3.0以上
節(jié)點:
master 192.168.10.78 (redis+sentinel)
slave01 192.168.10.80 (redis+sentinel)
slave01 192.168.10.81 (redis+sentinel)

1.redis安裝
yum install -y make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perl

192.168.10.78主

cd/usr/local/redis-3.0.7/redis-master/
make
make install
make test(test可不操作)

192.168.10.80和192.168.10.80同理。

2.redis配置
以主機192.168.10.78主為例。

  echo vm.overcommit_memory=1 >> /etc/sysctl.conf
  sysctl vm.overcommit_memory=1

其中, "0:表示內(nèi)核將檢查是否有足夠的可用內(nèi)存供應(yīng)用進程使用,1:表示內(nèi)核允許分配所有的物理內(nèi)存,而不管當(dāng)前的內(nèi)存狀態(tài)如何"。

vim /usr/local/redis-3.0.7/redis-master/src/redis.conf
修改如下幾行

    daemonize yes    //后臺運行
    port 6379
    logfile "/var/log/redis.log"
    tcp-backlog 65535   # 提高tcp backlog的數(shù)量
    maxclients 20000    #此值不可設(shè)置的過大,以為每個socket連接會以“文件描述符”方式被系統(tǒng)打開,
                                       所以受Linux系統(tǒng)“文件描述符”限制。如果超過系統(tǒng)設(shè)置,server會拒絕連接。
    maxmemory 6gb    #最好是物理內(nèi)存的3/4,與maxmemory-policy配合使用
    maxmemory-policy allkeys-lru    # Redis內(nèi)存回收策略,內(nèi)存不足時,數(shù)據(jù)清除策略。
                                                          lru = last recent updated,建議采用allkeys-lru內(nèi)存回收策略。
    maxmemory-samples 3       #內(nèi)存回收策略lru和ttl策略并非嚴(yán)禁策略,采用估算方式,
                                                   因此選擇取樣方式以便檢查。選擇3個key,從中淘汰不經(jīng)常用的。
    slave-serve-stale-data yes   # 讓Redis slave可以回復(fù)客戶請求,及時它沒有被完全同步(sync)。即如果當(dāng)前server為slave,
                                                     當(dāng) slave 與 master 失去通訊,是否繼續(xù)為客戶提供服務(wù)。
    slave-read-only yes    # 禁止Slave有被不小心直接寫入的可能,salve為只讀方式。
   #關(guān)閉Redis往磁盤寫入,提高性能
   #save 900 1    
   #save 300 10
   #save 60 10000
     min-slaves-to-write 1     # 這里保障,redis master至少要有1個連接得上的slave才可被寫入,用來減少replication丟數(shù)據(jù)的機會
     min-slaves-max-lag 10     # 這里保障,redis master會停止寫入,如果在10秒內(nèi)收不到從slave的replication確認(rèn)回饋

192.168.10.80 和 192.168.10.81 配置同上,修改相應(yīng)端口即可。
80: slaveof 192.168.10.78 6379
81: slaveof 192.168.10.78 6379

3.sentinel 配置
Redis Sentinel 是一個分布式系統(tǒng),可監(jiān)控(Monitoring)、提醒(Notification)和 自動故障遷移(Automatic failover)。
可以在一個架構(gòu)中運行多個 Sentinel 進程(progress), 這些進程使用流言協(xié)議(gossip protocols)來接收關(guān)于主服務(wù)器是否下線的信息, 并使用投票協(xié)議(agreement protocols)來決定是否執(zhí)行自動故障遷移, 以及選擇哪個從服務(wù)器作為新的主服務(wù)器。

192.168.10.78主要配置項說明:
vim /etc/sentinel.conf

port 26379    #指定sentinel的偵聽端口(即與redis server或client建立tcp連接的端口)
dir /usr/local/redis-3.0.7/redis-master/src
sentinel monitor mymaster 127.0.0.1 6379 2   #指定sentinel要monitor的redis實例,包括一個redis實例的別名(alias)及redis實例的ip+port,該行最后的數(shù)字2表示至少2個setinel實例同時檢測到redis server異常時,才將redis server的狀態(tài)判決為real fail。
sentinel down-after-milliseconds mymaster 20000   #指定sentinel監(jiān)控到redis實例持續(xù)異常多長時間后(20s),會判決其狀態(tài)為down。
sentinel failover-timeout mymaster 60000   #若sentinel在該配置值內(nèi)(60s)未能完成failover操作(即故障時master/slave自動切換),則認(rèn)為本次failover失敗。
sentinel parallel-syncs mymaster 1   #指定failover過程中,同時被sentinel reconfigure的大slave實例數(shù)。由于reconfigure過程中,對應(yīng)的slave會中斷響應(yīng)客戶端請求,故為避免所有的slave同時不可用,該值需適當(dāng)配小。

192.168.10.80從主要配置:

port 26380
dir /usr/local/redis-3.0.7/src
sentinel monitor mymaster 192.168.10.78 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1

192.168.10.81從主要配置:

port 26381
dir /usr/local/redis-3.0.7/src
sentinel monitor mymaster 192.168.10.78 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1

4.啟動

redis
192.168.10.78:

cd /usr/local/redis-3.0.7/redis-master
./src/redis-server ./redis-6379.conf &

192.168.10.80:

cd /usr/local/redis-3.0.7
./src/redis-server ./redis-6380.conf &

192.168.10.81:

cd /usr/local/redis-3.0.7
./src/redis-server ./redis-6381.conf &

sentinel
192.168.10.78:

cd /usr/local/redis-3.0.7/redis-master
./src/redis-server ./sentinel-26379.conf --sentinel &

192.168.10.80:

cd /usr/local/redis-3.0.7/
./src/redis-server ./sentinel-26380.conf --sentinel &

192.168.10.81:

cd /usr/local/redis-3.0.7
./src/redis-server ./sentinel-26381.conf --sentinel &

5.測試
連接redis端口

./redis-cli -h 127.0.0.1 -p 6379
info replication

redis主從+sentinel故障轉(zhuǎn)移部署

./src/redis-cli -h 127.0.0.1 -p 6379 info replication
./src/redis-cli -h 127.0.0.1 -p 26379 info Sentinel

內(nèi)存使用情況查看:
redis-cli -h 127.0.0.1 info | grep memory
redis主從+sentinel故障轉(zhuǎn)移部署

連接sentinel監(jiān)控端口測試:
./redis-cli -h 127.0.0.1 -p 26379
SENTINEL get-master-addr-by-name mymaster
redis主從+sentinel故障轉(zhuǎn)移部署

注意:
1、主從切換后,redis.conf、sentinel.conf內(nèi)容都會改變reconfiguration,主要還想要原來的主從架構(gòu),要再修改配置文件;
2、master掛掉,sentinel已經(jīng)選擇了新的master,但是還沒有將其改成master,但是已經(jīng)將old master改成了slave。那么這時候如果重啟old master,就會處于無主狀態(tài)。所以一方面要等sentinel穩(wěn)定后再啟動old master,或者重新人工修改配置文件,重新啟動集群。
3、再把服務(wù)已關(guān)閉的redis(old master)恢復(fù)服務(wù)狀態(tài),redis sentinel 集群服務(wù),會把上次主redis重新加入服務(wù)中,但是他再以不是主的redis了,變成從的reids。
4、如果此后想再次讓redis-0加入集群,你需要首先通過"INFO"指令找到當(dāng)前的masterip + port,并在啟動指令中明確指明slaveof參數(shù):./redis-server --include /etc/redis.conf --slaveof 192.168.10.80 6380

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前文章:redis主從+sentinel故障轉(zhuǎn)移部署-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://m.rwnh.cn/article44/iiohe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站內(nèi)鏈、虛擬主機、做網(wǎng)站、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
潜江市| 焉耆| 永兴县| 七台河市| 定日县| 罗江县| 分宜县| 唐河县| 西城区| 外汇| 商城县| 都江堰市| 敦化市| 灵宝市| 枣庄市| 托克逊县| 萍乡市| 新竹县| 齐齐哈尔市| 涞源县| 陇西县| 永新县| 宾川县| 达孜县| 富源县| 青浦区| 开原市| 蒙自县| 辰溪县| 游戏| 景泰县| 四平市| 辽中县| 闻喜县| 泰宁县| 都兰县| 罗江县| 宁南县| 曲水县| 阿合奇县| 长沙市|