阿里云Redis技術(shù)架構(gòu)演進(jìn)
夏周 大數(shù)據(jù)技術(shù)與架構(gòu)
本文是整理來自阿里巴巴夏周同學(xué)的分享,詳細(xì)介紹了阿里云Redis的發(fā)展和現(xiàn)狀。
Redis簡(jiǎn)介
Redis:Remote Dictionary Server,Key-Value存儲(chǔ)系統(tǒng),優(yōu)點(diǎn)包括:
易用性:豐富的數(shù)據(jù)結(jié)構(gòu)支持,Module
高性能:高校的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),全內(nèi)存操作
可靠性:主備同步,持久化
阿里云Redis架構(gòu)
整體架構(gòu)
單節(jié)點(diǎn)->單機(jī)主備->集群->讀寫分離->同城容災(zāi)->異地多活
阿里云整體架構(gòu)包含6大支撐系統(tǒng):
HA控制系統(tǒng)
實(shí)例高可用探測(cè)模塊,用于探測(cè)監(jiān)聽Redis實(shí)例運(yùn)行情況。
日志收集系統(tǒng)
進(jìn)行云數(shù)據(jù)庫Redis版運(yùn)行情況的日志收集,包括實(shí)例慢查詢?nèi)罩?,訪問日志等。
監(jiān)控系統(tǒng)
進(jìn)行Redis實(shí)例性能監(jiān)控,信息的收集工作,目前包括基本信息組監(jiān)控,keys組信息監(jiān)控,string信息組監(jiān)控等核心信息
在線遷移系統(tǒng)
當(dāng)實(shí)例所運(yùn)行的物理機(jī)出現(xiàn)故障,在線遷移系統(tǒng)會(huì)根據(jù)備份系統(tǒng)中的備份文件進(jìn)行實(shí)例重新搭建,保證業(yè)務(wù)不受影響
備份系統(tǒng)
針對(duì)Redis實(shí)例進(jìn)行備份處理,并且將生成的備份文件存儲(chǔ)在OSS系統(tǒng)上進(jìn)行保存。目前Redis備份系統(tǒng)支持用戶自定義備份設(shè)置,可臨時(shí)備份并且保存7天內(nèi)的備份文件。
任務(wù)控制系統(tǒng)
Redis實(shí)例支持多中管理控制任務(wù),如創(chuàng)建實(shí)例、變更配置、備份實(shí)例等,任務(wù)系統(tǒng)會(huì)根據(jù)用戶下發(fā)的操作指令,進(jìn)行靈活控制并且進(jìn)行任務(wù)跟蹤及出錯(cuò)管理。
雙副本架構(gòu)
適用場(chǎng)景:純緩存,數(shù)據(jù)持久化
性能:8-10w qps
鏈路:內(nèi)部SLB -> Redis
訪問方式:兼容所有開源客戶端
SLA:2副本,HA高可用,秒級(jí)切換
集群雙副本架構(gòu)
適用場(chǎng)景:數(shù)據(jù)量大,性能要求高
性能:100w qps
鏈路:內(nèi)部SLB -> Redis
訪問方式:兼容所有開源客戶端
SLA:分片2副本,高可用
讀寫分離架構(gòu)
適用場(chǎng)景:讀多寫少,超大Key,不要求強(qiáng)一致性
優(yōu)勢(shì):讀寫能力線性擴(kuò)展;支持所有命令;對(duì)用戶透明
同城容災(zāi)
適用場(chǎng)景:
數(shù)據(jù)可用性高
優(yōu)勢(shì):用戶數(shù)據(jù)雙機(jī)房熱備,單機(jī)房故障,業(yè)務(wù)無縫切換;機(jī)房恢復(fù)后,基于Binlog增量同步,防止流量雪崩
異地容災(zāi)+多活
適用場(chǎng)景:多點(diǎn)讀寫,就近讀寫
優(yōu)勢(shì):容忍N(yùn)-1機(jī)房故障;最終一致;跨地域?yàn)?zāi)備
混合存儲(chǔ)
適用場(chǎng)景:超大數(shù)據(jù)量,性能要求適中,視頻直播類應(yīng)用,電商類應(yīng)用
優(yōu)勢(shì):100%兼容Redis;冷熱數(shù)據(jù)分離;超高性價(jià)比
阿里云Redis內(nèi)核優(yōu)化
兼容Memcache協(xié)議
高可用探測(cè)
AOF Binlog
持久化系統(tǒng)優(yōu)化
安全加密
IO、連接優(yōu)化
持久化系統(tǒng)改造:
保留歷史AOF日志
去除AOF Rewrite
擴(kuò)展AOF日志信息
全新的數(shù)據(jù)組織形式:RDB全量+歷史AOF
基于AOF Binlog的同步機(jī)制獨(dú)立的端口探測(cè)線程:
單獨(dú)的事件
主線程阻塞不受影響
壞盤探測(cè)
慢內(nèi)存探測(cè)
快速容災(zāi)
AOF后臺(tái)異步寫優(yōu)化:
新增biowrite模式
輕量級(jí)別鎖隊(duì)列
bio線程進(jìn)行線程寫入操作
提高性能,避免write慢對(duì)主線程的影響
支持Memcache協(xié)議:
支持文本及二進(jìn)制協(xié)議,完全兼容
復(fù)用Redis String對(duì)象存儲(chǔ)memcached
復(fù)用原生Redis同步協(xié)議
復(fù)用原生Redis持久化機(jī)制
新版本Memcache支持掃描、備份、更多統(tǒng)計(jì)信息
混合存儲(chǔ)優(yōu)化:
內(nèi)存中保持所有key和熱數(shù)據(jù)
RocksDB中存冷數(shù)據(jù)
熱數(shù)據(jù)性能和Redis一致
100%兼容Redis
數(shù)據(jù)換出異步寫RocksDB,不阻塞主線程
單實(shí)例支持TB+數(shù)據(jù)存儲(chǔ)
網(wǎng)絡(luò)IO多線程優(yōu)化。