請求路由 目前我們已經(jīng)搭建好Redis集群并且理解了通信和伸縮細(xì)節(jié)泌参,但還沒有使用客戶端去操作集群哗脖。Redis集群對客戶端通信協(xié)議做了比較大的修改介杆,為了追求性能最大化皆看,并沒有采...
節(jié)點通信 通信流程在分布式存儲中需要提供維護節(jié)點元數(shù)據(jù)信息的機制员舵,所謂元數(shù)據(jù)是指:節(jié)點負(fù)責(zé)那些數(shù)據(jù)脑沿,是否出現(xiàn)故障等狀態(tài)信息。常見的元數(shù)據(jù)維護方式分為:集中式和P2P方式马僻。Re...
搭建集群 介紹完Redis集群分區(qū)規(guī)則之后,下面我們開始搭建Redis集群韭邓。搭建集群工作需要以下三個步驟: 準(zhǔn)備節(jié)點措近。 節(jié)點握手。 分配槽女淑。 準(zhǔn)備節(jié)點Redis集群一般有多個...
開發(fā)與運維中的問題 故障轉(zhuǎn)移日志分析Redis Sentinel拓?fù)浣Y(jié)構(gòu)本次故障轉(zhuǎn)移的分析直接使用9.2節(jié)的拓?fù)浜团渲眠M行說明,為了方便分析故障轉(zhuǎn)移的過程鸭你,下表列出了每個節(jié)點...
實現(xiàn)原理 本節(jié)將介紹Redis Sentinel的基本實現(xiàn)原理,具體包含以下幾個方面:Redis Sentinel的三個定時任務(wù)袱巨、主觀下線和客觀下線阁谆、Sentinel領(lǐng)導(dǎo)者選...
內(nèi)在原因 定位到具體的Redis節(jié)點異常后愉老,首先應(yīng)該排查是否是Redis自身原因?qū)е鲁÷蹋瑖@以下幾個方面排查: API或數(shù)據(jù)結(jié)構(gòu)使用不合理。 CPU飽和的問題嫉入。 持久化相關(guān)的阻...
外在原因 排查Redis自身原因引起的阻塞原因之后,如果還沒有定位問題咒林,需要排查是否由外部原因引起熬拒。圍繞以下三個當(dāng)面進行排查: CPU競爭 內(nèi)存交換 網(wǎng)絡(luò)問題 CPU競爭CP...
Redis是典型的單線程架構(gòu)映九,所有的讀寫操作都是在一條主線程中完成的梦湘。當(dāng)Redis用于高并發(fā)場景時,這條線程就變成了它的生命線。如果出現(xiàn)阻塞捌议,哪怕是很短時間哼拔,對于我們的應(yīng)用來...
本章重點回顧 Redis通過復(fù)制功能實現(xiàn)主節(jié)點的多個副本瓣颅。從節(jié)點可靈活地通過slaveof命令建立或斷開復(fù)制流程倦逐。 復(fù)制支持樹狀結(jié)構(gòu),從節(jié)點可以復(fù)制另一個從節(jié)點宫补,實現(xiàn)一層層向...
在分布式系統(tǒng)中為了解決單點問題,通常會把數(shù)據(jù)復(fù)制多個副本部署到其他機器稚晚,滿足故障恢復(fù)和負(fù)載均衡等需求崇堵。Redis也是如此,它為我們提供了復(fù)制功能客燕,實現(xiàn)了相同數(shù)據(jù)的多個Redi...
本章重點回顧 Redis提供了兩種持久化方式:RDB和AOF。 RDB使用一次性生成內(nèi)存快照的方式也搓,產(chǎn)生的文件緊湊壓縮比更高赏廓,因此讀取RDB恢復(fù)速度更快。由于每次生成RDB開...
AOF AOF(append only file)持久化:以獨立日志的方式記錄每次寫命令楚昭,重啟時再重新執(zhí)行AOF文件中的命令達(dá)到恢復(fù)數(shù)據(jù)的目的栖袋。AOF的主要作用是解決了數(shù)據(jù)持...
持久化 Redis支持RDB和AOF兩種持久化機制,持久化功能有效地避免因進程退出造成的數(shù)據(jù)丟失問題塘幅,當(dāng)下次重啟時利用之前持久化的文件即可實現(xiàn)數(shù)據(jù)恢復(fù)昔案。理解掌握持久化機制對于...
本章重點回顧 RESP(Redis Serialization Protocol Redis)保證客戶端與服務(wù)端的正常通信电媳,是各種編程語言開發(fā)客戶端的基礎(chǔ)踏揣。 要選擇社區(qū)活躍的...
客戶端案例分析 Redis內(nèi)存陡增現(xiàn)象服務(wù)端現(xiàn)象:Redis主節(jié)點內(nèi)存陡增匾乓,幾乎用滿maxmemory捞稿,而從節(jié)點內(nèi)存并沒有變化。客戶端現(xiàn)象:客戶端產(chǎn)生了OOM異常娱局,也就是Re...