溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Redis 遷移同步過(guò)程中的挑戰(zhàn)與解決方案是什么

發(fā)布時(shí)間:2021-12-07 10:49:55 來(lái)源:億速云 閱讀:297 作者:柒染 欄目:云計(jì)算

今天就跟大家聊聊有關(guān)Redis 遷移同步過(guò)程中的挑戰(zhàn)與解決方案是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

隨著云計(jì)算十余年的高速發(fā)展,作為目前可見(jiàn)的最新階段,多云正在快步大踏步前進(jìn)。而多云趨勢(shì)所帶來(lái)得數(shù)據(jù)云間遷移,也逐步常態(tài)化。因此,緩存 Redis 已成為高并發(fā)場(chǎng)景下提升數(shù)據(jù)訪問(wèn)速度的標(biāo)配。

不僅是數(shù)據(jù)云間遷移,目前大型系統(tǒng)對(duì)于緩存強(qiáng)依賴,致使大多數(shù)企業(yè)都會(huì)面臨大量并發(fā)讀寫(xiě)數(shù)據(jù)時(shí)訪問(wèn)速度慢、數(shù)據(jù)庫(kù)壓力大,以及緩存數(shù)據(jù)不?帶來(lái)的緩存擊穿及雪崩?險(xiǎn)。其中,Redis 就起到了降低數(shù)據(jù)庫(kù)壓力,提升數(shù)據(jù)訪問(wèn)速度的作用。

下圖是某網(wǎng)站業(yè)務(wù)的解決訪問(wèn)速度慢的問(wèn)題,引入緩存Redis提升訪問(wèn)速度的流程:

Redis 遷移同步過(guò)程中的挑戰(zhàn)與解決方案是什么

但在 Redis 遷移同步過(guò)程中,勢(shì)必會(huì)面臨著許多挑戰(zhàn):

  • rdb版本不?致導(dǎo)致源 redis dump?件在?標(biāo)redis中不能加載

  • 數(shù)據(jù)節(jié)點(diǎn)不?致帶來(lái)的 redis 主從復(fù)制?案失效

  • 應(yīng)?快速割接的??需求

  • ?冪等命令的冪等要求

正因如此, 應(yīng)運(yùn)而生。_RedisSyncer 是京東云用于在 redis 之間數(shù)據(jù)同步的產(chǎn)品,支持跨版本、異構(gòu)集群間的數(shù)據(jù)同步。_它模擬了redis的replication協(xié)議,在rdb版本不?致時(shí)進(jìn)?命令轉(zhuǎn)換,以實(shí)現(xiàn)跨rdb版本遷移,并通過(guò)緩存value的?式完成INCR、INCRBY、DECR、DECRBY等?命令的冪等轉(zhuǎn)換。最終適應(yīng)云上與云下、原生與托管等多種場(chǎng)景,能夠快速靈活地滿足用戶的同步、遷移、擴(kuò)容的需求。

RedisSyncer案例解析

Redis 遷移同步過(guò)程中的挑戰(zhàn)與解決方案是什么

某金融機(jī)構(gòu)為保障金融數(shù)據(jù)安全、符合金融數(shù)據(jù)規(guī)范,需要將原?redis集群遷移?該金融機(jī)構(gòu)?研的upredis集群,并保證業(yè)務(wù)系統(tǒng)平滑過(guò)渡。

項(xiàng)?挑戰(zhàn)

  • 版本差異

  • 降版本遷移

  • 集群節(jié)點(diǎn)數(shù)不?致

  • 極速回退需求

最終客?收益

  • 實(shí)現(xiàn)15分鐘完成 256GB+數(shù)據(jù)遷移

  • 20分鐘完成系統(tǒng)割接

  • 遷移過(guò)程“絲般柔順”

RedisSyncer 操作實(shí)戰(zhàn)

  • 必要環(huán)境

  • docker

  • docker-compose

  • 使?docker-compose 部署服務(wù)

Plain Text

git clone https://github.com/TraceNature/redissyncer.git
cd redissyncer
docker-compose up -d
  • 下載并配置cli客?端

wget https://github.com/TraceNature/redissyncercli/
releases/download/v0.1.0/redissyncer-cli-0.1.0-linux-amd64.tar.gz
.config.yaml
syncserver: http://10.0.1.20:8080
token: 379F5E2BD55A4608B6A7557F0583CFC5
  • ?成數(shù)據(jù)

./rsst -c ../config.yml generatedata -i 1 -a 10.0.1.101:6479 -p
redistest0102
  • 編寫(xiě)要執(zhí)?的任務(wù)json redissyncer-cli需要增加taskexamples

"sourcePassword": "redistest0102",
"sourceRedisAddress": "10.0.1.101:6379",
"targetRedisAddress": "10.0.1.102:6379",
"targetPassword": "redistest0102",
"taskName": "testtask",
"targetRedisVersion": 4.0,
"autostart": true,
"afresh": true,
"batchSize": 100
}
  • 啟動(dòng)任務(wù)

redissyncer-cli -i
redissyncer-cli > task create source ./task.json
  • 數(shù)據(jù)校驗(yàn)

wget
https://github.com/TraceNature/rediscompare/releases/download/v1.0.0/r
ediscompare-1.0.0-linux-amd64.tar.gz
rediscompare compare single2single --saddr "10.0.1.101:6479" --
spassword "redistest0102" --taddr "10.0.1.102:6479" --tpassword
"redistest0102" --comparetimes 3

看完上述內(nèi)容,你們對(duì)Redis 遷移同步過(guò)程中的挑戰(zhàn)與解決方案是什么有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI