請(qǐng)求路由 目前我們已經(jīng)搭建好Redis集群并且理解了通信和伸縮細(xì)節(jié)和二,但還沒(méi)有使用客戶端去操作集群缔赠。Redis集群對(duì)客戶端通信協(xié)議做了比較大的修改缩功,為了追求性能最大化夕膀,并沒(méi)有采...
節(jié)點(diǎn)通信 通信流程在分布式存儲(chǔ)中需要提供維護(hù)節(jié)點(diǎn)元數(shù)據(jù)信息的機(jī)制巾陕,所謂元數(shù)據(jù)是指:節(jié)點(diǎn)負(fù)責(zé)那些數(shù)據(jù)讨跟,是否出現(xiàn)故障等狀態(tài)信息。常見(jiàn)的元數(shù)據(jù)維護(hù)方式分為:集中式和P2P方式鄙煤。Re...
搭建集群 介紹完Redis集群分區(qū)規(guī)則之后,下面我們開(kāi)始搭建Redis集群梯刚。搭建集群工作需要以下三個(gè)步驟: 準(zhǔn)備節(jié)點(diǎn)凉馆。 節(jié)點(diǎn)握手。 分配槽亡资。 準(zhǔn)備節(jié)點(diǎn)Redis集群一般有多個(gè)...
開(kāi)發(fā)與運(yùn)維中的問(wèn)題 故障轉(zhuǎn)移日志分析Redis Sentinel拓?fù)浣Y(jié)構(gòu)本次故障轉(zhuǎn)移的分析直接使用9.2節(jié)的拓?fù)浜团渲眠M(jìn)行說(shuō)明,為了方便分析故障轉(zhuǎn)移的過(guò)程锥腻,下表列出了每個(gè)節(jié)點(diǎn)...
實(shí)現(xiàn)原理 本節(jié)將介紹Redis Sentinel的基本實(shí)現(xiàn)原理,具體包含以下幾個(gè)方面:Redis Sentinel的三個(gè)定時(shí)任務(wù)瘦黑、主觀下線和客觀下線京革、Sentinel領(lǐng)導(dǎo)者選...
內(nèi)在原因 定位到具體的Redis節(jié)點(diǎn)異常后幸斥,首先應(yīng)該排查是否是Redis自身原因?qū)е缕ヒ。瑖@以下幾個(gè)方面排查: API或數(shù)據(jù)結(jié)構(gòu)使用不合理。 CPU飽和的問(wèn)題睡毒。 持久化相關(guān)的阻...
外在原因 排查Redis自身原因引起的阻塞原因之后,如果還沒(méi)有定位問(wèn)題演顾,需要排查是否由外部原因引起供搀。圍繞以下三個(gè)當(dāng)面進(jìn)行排查: CPU競(jìng)爭(zhēng) 內(nèi)存交換 網(wǎng)絡(luò)問(wèn)題 CPU競(jìng)爭(zhēng)CP...
Redis是典型的單線程架構(gòu),所有的讀寫操作都是在一條主線程中完成的葛虐。當(dāng)Redis用于高并發(fā)場(chǎng)景時(shí)胎源,這條線程就變成了它的生命線。如果出現(xiàn)阻塞屿脐,哪怕是很短時(shí)間涕蚤,對(duì)于我們的應(yīng)用來(lái)...
本章重點(diǎn)回顧 Redis通過(guò)復(fù)制功能實(shí)現(xiàn)主節(jié)點(diǎn)的多個(gè)副本的诵。從節(jié)點(diǎn)可靈活地通過(guò)slaveof命令建立或斷開(kāi)復(fù)制流程万栅。 復(fù)制支持樹(shù)狀結(jié)構(gòu),從節(jié)點(diǎn)可以復(fù)制另一個(gè)從節(jié)點(diǎn)西疤,實(shí)現(xiàn)一層層向...
在分布式系統(tǒng)中為了解決單點(diǎn)問(wèn)題,通常會(huì)把數(shù)據(jù)復(fù)制多個(gè)副本部署到其他機(jī)器窖壕,滿足故障恢復(fù)和負(fù)載均衡等需求忧勿。Redis也是如此,它為我們提供了復(fù)制功能艇拍,實(shí)現(xiàn)了相同數(shù)據(jù)的多個(gè)Redi...
本章重點(diǎn)回顧 Redis提供了兩種持久化方式:RDB和AOF宠纯。 RDB使用一次性生成內(nèi)存快照的方式卸夕,產(chǎn)生的文件緊湊壓縮比更高,因此讀取RDB恢復(fù)速度更快婆瓜。由于每次生成RDB開(kāi)...
AOF AOF(append only file)持久化:以獨(dú)立日志的方式記錄每次寫命令,重啟時(shí)再重新執(zhí)行AOF文件中的命令達(dá)到恢復(fù)數(shù)據(jù)的目的廉白。AOF的主要作用是解決了數(shù)據(jù)持...
持久化 Redis支持RDB和AOF兩種持久化機(jī)制,持久化功能有效地避免因進(jìn)程退出造成的數(shù)據(jù)丟失問(wèn)題猴蹂,當(dāng)下次重啟時(shí)利用之前持久化的文件即可實(shí)現(xiàn)數(shù)據(jù)恢復(fù)院溺。理解掌握持久化機(jī)制對(duì)于...
本章重點(diǎn)回顧 RESP(Redis Serialization Protocol Redis)保證客戶端與服務(wù)端的正常通信磅轻,是各種編程語(yǔ)言開(kāi)發(fā)客戶端的基礎(chǔ)珍逸。 要選擇社區(qū)活躍的...
客戶端案例分析 Redis內(nèi)存陡增現(xiàn)象服務(wù)端現(xiàn)象:Redis主節(jié)點(diǎn)內(nèi)存陡增,幾乎用滿maxmemory谆膳,而從節(jié)點(diǎn)內(nèi)存并沒(méi)有變化叭爱。客戶端現(xiàn)象:客戶端產(chǎn)生了OOM異常漱病,也就是Re...