Aws ElastiCache Redis數(shù)據(jù)遷移(一)

1、EC 簡(jiǎn)介及性能表現(xiàn)

Aws ElastiCache(簡(jiǎn)稱 EC)预侯,主要包含兩種架構(gòu)握截,主從架構(gòu)和集群架構(gòu)产雹。
EC在性能上做了部分優(yōu)化,在R6g 等arm機(jī)型上也做了部分優(yōu)化锈锤。


image.png

image.png

image.png

可以看到,部分場(chǎng)景下,GET性能可以達(dá)到接近90萬(wàn)的QPS省店。

2嚣崭、EC遷移工具

目前EC的遷移工具,主要包括兩種:Riot懦傍,Redis-shake雹舀。
Aws 官方的ElastiCache 控制臺(tái)、API 或 AWS CLI粗俱,本篇不做介紹说榆。
本文,先介紹第一種Riot寸认。

Riot 介紹

image.png

3签财、部署方式

3.1 docker方式

docker run -d --name=riot fieldengineering/riot \
-h source-ip -p source-port -a source-pwd <-c> <--tls> \
replicate \
-h target-ip -p target-port -a target-pwd <-c> <--tls>  \
--threads 3 \
--mode live 

3.2 二進(jìn)制方式

#x86_64
wget https://github.com/redis-developer/riot/releases/download/v3.1.5/riot-standalone-3.1.5-linux-x86_64.zip
#riot-standalone-3.1.5-*.zip 包含自己的 Java 運(yùn)行時(shí)并且不需要安裝 Java

#其他系統(tǒng),參考 https://github.com/redis-developer/riot/releases

# 遷移命令
riot -h source-ip -p source-port -a source-pwd <-c> <--tls> \
replicate <--type ds> \
-h target-ip -p target-port -a target-pwd <-c> <--tls>  \
--threads 3 \
--mode live 

3.3 replicate 數(shù)據(jù)同步模式參數(shù)

TIPS:
source-ip 源端ip(dns)
source-port 源端port
source-pwd 源端密碼
-c 集群模式偏塞,非集群模式不需要加-c
--tls redis實(shí)例啟用了數(shù)據(jù)傳輸加密時(shí)唱蒸,需要增加此參數(shù)
replicate 數(shù)據(jù)同步模式
--type ds 源端和目的端版本不一致時(shí),對(duì)key 按照類型進(jìn)行同步灸叼。cpu負(fù)載高
target-ip 目標(biāo)端ip
target-port 目標(biāo)端port
target-pwd 目標(biāo)端密碼
--threads 啟用多線程
--mode live 啟用數(shù)據(jù)增量同步

4油宜、遷移類型

4.1 離線遷移

   通過(guò)對(duì)文件進(jìn)行import。該方案不包含在線業(yè)務(wù)的增量數(shù)據(jù)怜姿。
   文件類型主要為CSV, TSV, PSV

4.2 在線全量遷移

   對(duì)Redis 進(jìn)行 dump & restoe 操作慎冤。該方案不包含在線業(yè)務(wù)的增量數(shù)據(jù)。

4.3 在線全量/增量遷移

   對(duì)Redis 進(jìn)行 dump & restoe 操作沧卢,并且監(jiān)測(cè)在線業(yè)務(wù)的增量數(shù)據(jù)情況蚁堤,進(jìn)行實(shí)時(shí)同步。

增量遷移但狭,需要設(shè)置源端redis參數(shù) notify-keyspace-events

config set notify-keyspace-events KA
可以通過(guò)配置 "notify-keyspace-events" 選項(xiàng)來(lái)讓 Redis 選擇發(fā)送哪些事件:
K Keyspace 事件, 以 __keyspace@<db>__ 為前綴發(fā)布
E Keyevent 事件, 以 __keyevent@<db>__ 為前綴發(fā)布
g 通用命令 (不是針對(duì)特定類型的命令) 比如 DEL, EXPIRE, RENAME 等
$ String 命令
l List 命令
s Set 命令
h Hash 命令
z Sorted set 命令
x Expired 事件 (當(dāng)一個(gè) key 過(guò)期的時(shí)候生成)
e Evicted 事件 (當(dāng)一個(gè) key 由于 maxmemory 被回收生成)
A 表示 g$lshzxe 的別名,因此 "AKE" 表示所有事件
notify-keyspace-events 的值由上面的 0 到 N 個(gè)字符組成披诗。空字符串表示禁止發(fā)送通知立磁, 
這是 notify-keyspace-events 的默認(rèn)值呈队。

遷移時(shí),增加增量遷移參數(shù)

--mode live

5唱歧、遷移準(zhǔn)備

5.1 準(zhǔn)備EC2

在待遷移實(shí)例的同一個(gè)vpc中宪摧,準(zhǔn)備一臺(tái)EC2,4c8g+

5.2 修改參數(shù)

如果需要數(shù)據(jù)實(shí)時(shí)同步颅崩,需要提前修改EC(Redis)的參數(shù)几于。
開(kāi)啟方法:

5.2.1 物理自建實(shí)例,可在線動(dòng)態(tài)修改

config set notify-keyspace-events KA

5.2.2 EC實(shí)例

Tips:EC實(shí)例限制了部分命令沿后,如config,sync,psync等命令沿彭,所以需要修改配置文件.

查看當(dāng)前集群的參數(shù)組名稱,如default.redis6.x.cluster.on尖滚,default前綴表示使用的是系統(tǒng)默認(rèn)參數(shù)組喉刘,默認(rèn)參數(shù)組不可以修改

image.png

在Aws-ElastiCache 控制臺(tái)頁(yè)面左側(cè)瞧柔, —>配置—> 參數(shù)組,點(diǎn)擊右上角【創(chuàng)建參數(shù)組】

image.png

輸入一個(gè)參數(shù)組名稱睦裳,建議名稱包含實(shí)例類型(redis)造锅,實(shí)例版本,實(shí)例架構(gòu)推沸,選擇默認(rèn)參數(shù)組對(duì)應(yīng)的版本备绽,及描述信息

image.png

重新進(jìn)入 配置—> 參數(shù)組,選擇剛才創(chuàng)建的參數(shù)組鬓催,點(diǎn)擊右側(cè)【編輯參數(shù)值】

image.png

搜索notify肺素,找到notify-keyspace-events參數(shù),值修改為 KA

image.png

如果原EC為cluster 架構(gòu)宇驾,還需要修改cluster-enabled值為yes倍靡,因?yàn)樾聞?chuàng)建的參數(shù)組,cluster-enabled默認(rèn)為NO

image.png

5.3 測(cè)試網(wǎng)絡(luò)

在EC2機(jī)器安裝redis-cli工具

sudo apt-get install redis-tools

測(cè)試源端EC

redis-cli -h cluster1.1o85i0.clustercfg.apse1.cache.amazonaws.com -p 6379 -a xxx

如果開(kāi)啟了傳輸加密课舍,需要加上--tls 參數(shù)
redis-cli -h cluster1.1o85i0.clustercfg.apse1.cache.amazonaws.com -p 6379 -a xxx --tls

測(cè)試目標(biāo)端Redis

redis-cli -h target-ip -p 6379 -a xxx

6塌西、遷移場(chǎng)景

6.1 ElastiCache Cluster To other Redis Cluster

6.1.1全量遷移

docker run -d --name=riot fieldengineering/riot \
-h source-ip -p source-port -a source-pwd -c --tls \
replicate \
-h target-ip -p target-port -a target-pwd -c --tls \
--threads 2 \

TIPS: 未開(kāi)啟傳輸加密,不需要--tls 參數(shù)

6.1.2 全量+增量遷移

docker run -d --name=riot fieldengineering/riot \
-h source-ip -p source-port -a source-pwd -c --tls \
replicate \
-h target-ip -p target-port -a target-pwd -c --tls \
--threads 2 \
--mode live 

TIPS: 未開(kāi)啟傳輸加密筝尾,不需要--tls 參數(shù)

6.2 ElastiCache Single To other Redis Single

6.2.1全量遷移

docker run -d --name=riot fieldengineering/riot \
-h source-ip -p source-port -a source-pwd --tls \
replicate \
-h target-ip -p target-port -a target-pwd --tls \
--threads 2 \

TIPS: 未開(kāi)啟傳輸加密捡需,不需要--tls 參數(shù)

6.2.2全量+增量遷移

docker run -d --name=riot fieldengineering/riot \
-h source-ip -p source-port -a source-pwd --tls \
replicate \
-h target-ip -p target-port -a target-pwd --tls \
--threads 2 \
--mode live 

TIPS: 未開(kāi)啟傳輸加密,不需要--tls 參數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末筹淫,一起剝皮案震驚了整個(gè)濱河市站辉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌损姜,老刑警劉巖饰剥,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異摧阅,居然都是意外死亡汰蓉,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門棒卷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)顾孽,“玉大人,你說(shuō)我怎么就攤上這事娇跟⊙页荩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵苞俘,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我龄章,道長(zhǎng)吃谣,這世上最難降的妖魔是什么乞封? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮岗憋,結(jié)果婚禮上肃晚,老公的妹妹穿的比我還像新娘。我一直安慰自己仔戈,他們只是感情好关串,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著监徘,像睡著了一般晋修。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凰盔,一...
    開(kāi)封第一講書(shū)人閱讀 52,337評(píng)論 1 310
  • 那天墓卦,我揣著相機(jī)與錄音,去河邊找鬼户敬。 笑死落剪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的尿庐。 我是一名探鬼主播忠怖,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抄瑟!你這毒婦竟也來(lái)了凡泣?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤锐借,失蹤者是張志新(化名)和其女友劉穎问麸,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體钞翔,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡严卖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了布轿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哮笆。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖汰扭,靈堂內(nèi)的尸體忽然破棺而出稠肘,到底是詐尸還是另有隱情,我是刑警寧澤萝毛,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布项阴,位于F島的核電站,受9級(jí)特大地震影響笆包,放射性物質(zhì)發(fā)生泄漏环揽。R本人自食惡果不足惜略荡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望歉胶。 院中可真熱鬧汛兜,春花似錦、人聲如沸通今。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辫塌。三九已至漏策,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間璃氢,已是汗流浹背哟玷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留一也,地道東北人巢寡。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像椰苟,于是被迫代替她去往敵國(guó)和親抑月。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容