基于Redis-Shake實(shí)現(xiàn)Redis實(shí)時(shí)同步的示例代碼
一、前言
Redis-Shake是阿里云技術(shù)團(tuán)隊(duì)開源的一款Redis數(shù)據(jù)遷移與處理工具,支持?jǐn)?shù)據(jù)遷移、備份、恢復(fù)和實(shí)時(shí)同步等多種功能。能夠幫助你在不同Redis環(huán)境之間穩(wěn)定高效的移動(dòng)數(shù)據(jù)。
核心功能
- sync(同步):支持全量數(shù)據(jù)遷移和增量數(shù)據(jù)實(shí)時(shí)同步,適用于業(yè)務(wù)不停服遷移、異地容災(zāi)、多活架構(gòu)
- dump(備份):將源Redis的數(shù)據(jù)備份到RDB文件中,適用于為數(shù)據(jù)備份、數(shù)據(jù)恢復(fù)做準(zhǔn)備
- Restore(恢復(fù)):將RDB文件中的數(shù)據(jù)恢復(fù)到目標(biāo)Redis實(shí)例。適用于數(shù)據(jù)恢復(fù)、從備份文件快速搭建新環(huán)境
- rump(掃描): 通過SCMP命令遷移數(shù)據(jù),適用于不支持SYNC/PSYNC命令的環(huán)境。適用于遷移Codis、Twemproxy等代理架構(gòu)的數(shù)據(jù)
二、實(shí)施步驟
2.1 下載redis-shake二進(jìn)制安裝包
#wget https://github.com/alibaba/RedisShake/releases/download/v3.1.7/redis-shake-linux-amd64.tar.gz #tar zxvf redis-shake-linux-amd64.tar.gz -C /root/
2.2 配置rsync模塊文件
在這里定義源端redis和目標(biāo)redis相關(guān)信息即可
[sync_reader] address = "源Redis地址:端口" # 例如:192.168.1.1:6379 [redis_writer] address = "目標(biāo)Redis地址:端口" # 例如:r-bp1xxxxx.redis.rds.aliyuncs.com:6379 [advanced] parallel = 32 # 并發(fā)線程數(shù),根據(jù)服務(wù)器性能調(diào)整 [filter] # 可選:跳過以"temp:"或"cache:"開頭的Key block_key_prefix = ["temp:", "cache:"]
2.3 配置systemd
配置redis-shake服務(wù),將其托管至systemd
#vim /etc/systemd/system/redis-shake.service [Unit] Description=RedisShake Data Sync Service After=network.target [Service] Type=simple User=root Group=root WorkingDirectory=/root/redis-shake ExecStart=/root/redis-shake/redis-shake /root/redis-shake/sync.toml Restart=always RestartSec=10 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target
2.4 啟動(dòng)并設(shè)置為自啟
啟動(dòng)后,Redis-Shake會(huì)先在屏幕上打印全量同步的進(jìn)度日志。當(dāng)你看到 sync rdb done 的提示時(shí),就意味著它已經(jīng)進(jìn)入了增量同步階段,會(huì)持續(xù)將源實(shí)例的變更實(shí)時(shí)同步到目標(biāo)實(shí)例
#systemctl daemon-reload # systemctl enable --now redis-shake Created symlink from /etc/systemd/system/multi-user.target.wants/redis-shake.service to /etc/systemd/system/redis-shake.service.

三、驗(yàn)證
測(cè)試我們可以在源端redis創(chuàng)建測(cè)試鍵值對(duì)。如下
127.0.0.1:6379> SELECT 1 OK 127.0.0.1:6379[1]> SET test_bxy "test_value1" OK

在目標(biāo)端redis驗(yàn)證 鍵值對(duì)是否同步過來。
redis-cli -h 192.168.x.x -p 9736 -a 123456 -n 1 GET test_bxy
由此可見,目標(biāo)端鍵值對(duì)數(shù)據(jù)已同步過來了。

到此這篇關(guān)于基于Redis-Shake實(shí)現(xiàn)Redis實(shí)時(shí)同步的示例代碼的文章就介紹到這了,更多相關(guān)Redis-Shake Redis實(shí)時(shí)同步內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- redis之基于SpringBoot實(shí)現(xiàn)Redis stream實(shí)時(shí)流事件處理方式
- 使用Redis實(shí)現(xiàn)實(shí)時(shí)排行榜功能
- 使用Redis和Node.js來開發(fā)簡(jiǎn)單的實(shí)時(shí)聊天功能
- 使用Redis實(shí)現(xiàn)實(shí)時(shí)排行榜的示例
- 淺談我是如何用redis做實(shí)時(shí)訂閱推送的
- 基于Redis Streams的實(shí)時(shí)消息處理實(shí)戰(zhàn)指南
- 監(jiān)聽Redis實(shí)時(shí)數(shù)據(jù)變化實(shí)現(xiàn)過程
相關(guān)文章
Redis Caffeine實(shí)現(xiàn)兩級(jí)緩存的項(xiàng)目實(shí)踐
本文介紹了使用Redis和Caffeine實(shí)現(xiàn)兩級(jí)緩存,以提高查詢接口的性能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12
Redis Sorted Set類型使用及應(yīng)用場(chǎng)景
Sorted Set是Redis常用的一種是數(shù)據(jù)類型,本文主要介紹了Redis Sorted Set類型使用及應(yīng)用場(chǎng)景,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
如何使用gradle將java項(xiàng)目推送至maven中央倉庫
本文主要介紹了使用gradle將java項(xiàng)目推送至maven中央倉庫,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
虛擬機(jī)linux安裝redis實(shí)現(xiàn)過程解析
這篇文章主要介紹了虛擬機(jī)linux安裝redis實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08

