Redis應(yīng)用與運維實踐分析_第1頁
Redis應(yīng)用與運維實踐分析_第2頁
Redis應(yīng)用與運維實踐分析_第3頁
Redis應(yīng)用與運維實踐分析_第4頁
Redis應(yīng)用與運維實踐分析_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Redis應(yīng)用與運維實踐目錄 Redis概述 Redis應(yīng)用注意事項 Redis運維踩過的坑 Redis cluster介紹Redis概述 高性能的KEY-VALUE內(nèi)存存儲 支持主從同步 豐富的APIRedis概述 數(shù)據(jù)模型 字符串(String) 字符串列表(List) 無序不重復(fù)的字符串集合(SET) 有序不重復(fù)的字符串集合(ZSET) 鍵、值的字符串的哈希表(HASH)Redis概述 數(shù)據(jù)存儲 內(nèi)存 ADB AOFRedis應(yīng)用注意事項 Redis list的使用 PUSH、POP操作保證在同一個節(jié)點上 隊列長度添加監(jiān)控 隊列與別的Redis業(yè)務(wù)分開使用Redis應(yīng)用注意事項 過期KE

2、Y的使用 對于包含過期時間的KEY操作,保持在同一個節(jié)點上 對于過期KEY的redis,可以設(shè)置最大內(nèi)存限制 配置LRU策略Redis應(yīng)用注意事項 HASH的使用 避免使用HGETALL、HKEYS、HVALSRedis應(yīng)用注意事項 SERVER端操作注意事項 禁用KEYS * 、SAVE、. 默認使用數(shù)據(jù)庫0、不要使用SELECT 選擇多個數(shù)據(jù)庫Redis運維踩過的坑 一主多從(級聯(lián)情況)Redis運維踩過的坑 一主多從(級聯(lián)情況)Redis運維踩過的坑 一主多從(級聯(lián)情況)Redis運維踩過的坑 一主多從(級聯(lián)情況)Redis運維踩過的坑 Redis備份的問題 RDB備份 AOF備份 單機

3、多實例的RDB問題Redis運維踩過的坑 Redis 主從搭建問題 避免高峰期搭建,可能導(dǎo)致失敗 Redis做RDB的時候,Redis可能出現(xiàn)夯死的情況 Buffer區(qū)寫爆了 解決措施: 盡量在壓力小的實例搭建從庫 調(diào)整client-output-buffer-limit slaveRedis運維踩過的坑 Redis 連接超時問題 解決方案 慢查詢監(jiān)控 業(yè)務(wù)優(yōu)化Redis運維踩過的坑 MONITOR導(dǎo)致內(nèi)存飆升 解決方案: 通過client-output-buffer-limit限制 有能力的可以修改monitor實現(xiàn)機制(臣妾暫時無法做到)Redis Cluster介紹 Redis 原生Cl

4、uster 特性 高可用性與可線性擴展 數(shù)據(jù)自動路由到多個節(jié)點 節(jié)點間數(shù)據(jù)共享 可動態(tài)添加或者刪除節(jié)點 數(shù)據(jù)通過異步復(fù)制,不保證數(shù)據(jù)的強一致性 可動態(tài)調(diào)整數(shù)據(jù)分布Redis Cluster 介紹Redis Cluster 介紹 Redis集群數(shù)據(jù)分布 Redis 集群沒有使用一致性hash,引入了哈希槽(HASH SLOT). Redis 集群中所有的主節(jié)點都負責(zé) 16384 個哈希槽中的一部分。當集群處于穩(wěn)定狀態(tài)時,集群中沒有在執(zhí)行重配置(reconfiguration)操作,每個哈希槽都只由一個節(jié)點進行處理(不過主節(jié)點可以有一個或多個從節(jié)點,可以在網(wǎng)絡(luò)斷線或節(jié)點失效時替換掉主節(jié)點) slo

5、t = CRC16(KEY) / 16384Redis Cluster介紹Redis 集群鍵HASH標簽?zāi)繕耍篐ASH標簽是確保兩個KEY 都能在同一個HASH槽的一種方式實現(xiàn)方式:HASH 槽是用另一種不同的計算方式計算的?;緛碚f,如果KEY包含一個.這樣的模式,只有“” 和 “” 之間的字符串會被用來做HASH以獲取HAS槽。如果同時出現(xiàn)多個“” 計算方式如下:* 如果KEY 包含一個 “” 字符* 那么在 “”的右邊就會字符 ”* 在字符 “” 和 “”直接會有一個或多個字符。但是第一個“” 一定會出現(xiàn)在第一個“”之后* 只有在第一個 和它右邊第一個 之間的內(nèi)容會被用來計算哈希值例子:

6、1、比如這兩個鍵 user:1000.following 和user:1000.followers 會被哈希到同一個哈希槽里,因為只有 1000 這個子串會被用來計算哈希值。 2、對于 userlist 這個鍵,整個鍵都會被用來計算哈希值,因為第一個出現(xiàn)的 和它右邊第一個出現(xiàn)的 之間沒有任何字符。 3、對于 usermomoidfollowing 這個鍵,用來計算哈希值的是 momoid 這個子串,因為它是第一個 及其右邊第一個 之間的內(nèi)容。 4、對于 usermomoidfollowing 這個鍵,用來計算哈希值的是 momoid 這個子串,因為算法會在第一次有效或無效(比如中間沒有任何字節(jié)

7、)地匹配到 和 的時候停止。 5、按照這個算法,如果一個鍵是以 開頭的話,那么就當作整個鍵會被用來計算哈希值。當使用二進制數(shù)據(jù)做為鍵名稱的時候,這是非常有用的。Redis Cluster 介紹相關(guān)命令集群 1、CLUSTER INFO 打印集群的信息 2、CLUSTER NODES 列出集群當前已知的所有節(jié)點(node),以及這些節(jié)點的相關(guān)信息。 3、CLUSTER FAILOVER 手動故障轉(zhuǎn)移,需要在轉(zhuǎn)移的主節(jié)點的從節(jié)點上執(zhí)行 節(jié)點 1、CLUSTER MEET 將 ip 和 port 所指定的節(jié)點添加到集群當中,讓它成為集群的一份子。 2、CLUSTER FORGET 從集群中移除 no

8、de_id 指定的節(jié)點。 3、CLUSTER REPLICATE 將當前節(jié)點設(shè)置為 node_id 指定的節(jié)點的從節(jié)點。 4、CLUSTER SAVECONFIG 將節(jié)點的配置文件保存到硬盤里面。 槽(slot) 1、CLUSTER ADDSLOTS slot . 將一個或多個槽(slot)指派(assign)給當前節(jié)點。 2、CLUSTER DELSLOTS slot . 移除一個或多個槽對當前節(jié)點的指派。 3、CLUSTER FLUSHSLOTS 移除指派給當前節(jié)點的所有槽,讓當前節(jié)點變成一個沒有指派任何槽的節(jié)點。 4、CLUSTER SETSLOT NODE 將槽 slot 指派給 no

9、de_id 指定的節(jié)點,如果槽已經(jīng)指派給另一個節(jié)點,那么先讓另一個節(jié)點刪除該槽,然后再進行指派。 1、CLUSTER SETSLOT MIGRATING 將本節(jié)點的槽 slot 遷移到 node_id 指定的節(jié)點中。 2、CLUSTER SETSLOT IMPORTING 從 node_id 指定的節(jié)點中導(dǎo)入槽 slot 到本節(jié)點。 3、CLUSTER SETSLOT STABLE 取消對槽 slot 的導(dǎo)入(import)或者遷移(migrate)。 鍵 1、CLUSTER KEYSLOT 計算鍵 key 應(yīng)該被放置在哪個槽上。 2、CLUSTER COUNTKEYSINSLOT 返回槽 s

10、lot 目前包含的鍵值對數(shù)量。 3、CLUSTER GETKEYSINSLOT 返回 count 個 slot 槽中的鍵。 不支持的命令: 1、不支持SELECT 命令,集群只使用數(shù)據(jù)庫 0 2、不支持多個KEY的操作 如 MSET、SUION、SINTER等命令 (因為KEYS 無法hash到同一個slot中)Redis Cluster介紹集群配置必須配置:cluster-enabled yes - 開啟集群模式cluster-config-file nodes-30000.conf - 集群相關(guān)的信息cluster-node-timeout 15000 - 節(jié)點超時時間,用來failove

11、r的操作可選配置:cluster-slave-validity-factor 10 cluster-migration-barrier 1cluster-require-full-coverage yesRedis-trib.rb 相關(guān)命令redis-trib.rb create -replicas N host:ip host:ip . 創(chuàng)建集群redis-trib.rb add-node host:ip host:ip 將前面的host:ip 添加到集群中redis-trib.rb check host:ip 檢查集群的狀態(tài)redis-trib.rb reshard host:ip OR

12、redis-trib.rb reshard -from host:port -to host:port -slots -yes集群重新分片redis-trib.rb del-node host:ip NODE ID 將節(jié)點從集群中移除Redis Cluster 介紹 Failover機制 節(jié)點心跳 失效檢測 從選舉與提升Redis Cluster介紹 優(yōu)點 redis 在主節(jié)點下線后,從節(jié)點會自動提升為主節(jié)點,提供服務(wù) redis 宕機節(jié)點恢復(fù)后,自動會添加到集群中,變成從節(jié)點 缺點 由于redis的復(fù)制使用異步機制,在自動故障轉(zhuǎn)移的過程中,集群可能會丟失寫命令。然而 redis 幾乎是同時執(zhí)行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論