<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
和很多同步工具一樣,redis shake為同步redis資料而存在。在很多場景下,如果不使用同步工具,如果需要同步redis資料是一件相對繁瑣的事情,可能需要編寫程式碼,專門來做同步這件事,這就對開發提出了較高的要求,需要考慮到各種場景,
有了redis shake 之後,同步redis資料庫資料變得容易了很多,其實我們可以猜想,它應該利用瞭解析redis的rdb或aof的檔案來達到資料同步的目的,事實上也差不多,有了之前的canal的使用經驗,其同步思想也如出一轍;
git地址:redis shake 官方地址
redis-shake是阿里雲Redis&MongoDB團隊開源的用於redis資料同步的工具
redis-shake是我們基於redis-port基礎上進行改進的一款產品。它支援解析、恢復、備份、同步四個功能。以下主要介紹同步sync;
edis-shake的基本原理就是模擬一個從節點加入源redis叢集,首先進行全量拉取並回放,然後進行增量的拉取(通過psync命令)。如下圖所示:
如果源端是叢集模式,只需要啟動一個redis-shake進行拉取,同時不能開啟源端的move slot操作。如果目的端是叢集模式,可以寫入到一個結點,然後再進行slot的遷移,當然也可以多對多寫入;
目前,redis-shake到目的端採用單鏈路實現,對於正常情況下,這不會成為瓶頸,但對於極端情況,qps比較大的時候,此部分效能可能成為瓶頸,後續我們可能會計劃對此進行優化。另外,redis-shake到目的端的資料同步採用非同步的方式,讀寫分離在2個執行緒操作,降低因為網路時延帶來的同步效能下降;
更多內容請參閱官方說明
下面演示下,基於單節點模式下,使用redis shake完成redis兩個節點資料庫的完整過程;
1、兩個伺服器(虛擬機器器或雲伺服器);
2、redis 的llinux版安裝包;
下載地址:https://redis.io/download
wget https://download.redis.io/releases/redis-6.0.15.tar.gz
3、提前下載好 redis shake 安裝包;
在翻閱資料時,發現網上很多參考資料直接從redis shake開始,跳過了redis服務搭建步驟,為了方便學習和後續查閱,這裡我們先快速搭建起redis服務,以便後面的演示;
1、更新機器的gcc相關依賴(本例redis為6.X版本,建議升級下gcc)
依次執行下面的命令
yum install centos-release-scl scl-utils-build #安裝scl源 yum install -y devtoolset-9-toolchain #安裝9版本的gcc、gcc-c++、gdb工具鏈 scl enable devtoolset-9 bash #設定版本生效,並再次檢視版本(gcc -v)
注意:scl命令啟用只是臨時的,退出shell或重啟就會恢復原系統gcc版本;
設定版本長期生效: echo “source /opt/rh/devtoolset-9/enable” >>/etc/profile
2、安裝redis
tar -xzf redis-6.0.15.tar.gz cd redis-6.0.15 make
3、進入redis主目錄,修改redis.conf檔案
以下列舉出主要修改的設定項,其他設定保持預設就好
bind 0.0.0.0 #測試使用的時候,可以使用4個0,生產環境下建議繫結本機IP protected-mode no #是否開啟保護模式,測試使用時候可以使用no port 6379 #對外暴露的埠 requirepass 123456 #是否設定使用者端連線密碼【測試時候嫌麻煩可以註釋掉】 daemonize no #是否使用守護行程方式啟動服務【測試使用時,可以使用no,即啟動時候圖形化展示】
4、進入src目錄,啟動redis服務
./redis-server …/redis.conf
5、進入src目錄,啟動使用者端驗證下
./redis-cli 或 ./redis-cli -p 3306
通過以上步驟,redis服務就搭建完畢,使用同樣的方法在另一個機器上也把redis服務搭建起來吧;
1、下載redis shake安裝包(上文已說明);
2、解壓安裝包;
tar -zxvf redis…
mv redis-shake-v2.0.3 redis-shake
3、進入主目錄,修改 redis-shake.conf 檔案
其實使用redis-shake 和其他同步工具類似,主要是修改組態檔,根據自身的實際情況做調整,比如有的是主從模式,有的是哨兵模式,還有的是單機模式等,不同的模式,組態檔中的相關引數也需要做適當的調整;
如下列舉出核心的需要修改的設定,結合了本例的實際情況,
# source redis configuration. # used in `dump`, `sync` and `rump`. # source redis type, e.g. "standalone" (default), "sentinel" or "cluster". # 1. "standalone": standalone db mode. # 2. "sentinel": the redis address is read from sentinel. # 3. "cluster": the source redis has several db. # 4. "proxy": the proxy address, currently, only used in "rump" mode. # 源端redis的型別,支援standalone,sentinel,cluster和proxy四種模式,注意:目前proxy只用於rump模式。 source.type = standalone #【單機模式下直接使用standalone 即可】 # 源redis地址 source.address = 127.0.0.1:6379 #【本例從本機同步到遠端的redis上】 # password. source.password_raw = 123456 #【如果沒有設定密碼,可以不用填】 # auth type, don't modify it source.auth_type = auth # target redis configuration. used in `restore`, `sync` and `rump`. # the type of target redis can be "standalone", "proxy" or "cluster". # 1. "standalone": standalone db mode. # 2. "sentinel": the redis address is read from sentinel. # 3. "cluster": open source cluster (not supported currently). # 4. "proxy": proxy layer ahead redis. Data will be inserted in a round-robin way if more than 1 proxy given. # 目的redis的型別,支援standalone,sentinel,cluster和proxy四種模式。 target.type = standalone #【單機模式下直接使用standalone 即可】 # 目的redis地址 target.address = 目的地IP:6379 # password. target.password_raw = 123456 #【如果沒有設定密碼,可以不用填】 # auth type, don't modify it target.auth_type = auth # version number, default is 6 (6 for Redis Version <= 3.0.7, 7 for >=3.2.0) target.version = 6 # all the data will come into this db. < 0 means disable. # used in `restore` and `sync`. target.db = -1 # 當源目的有重複key,是否進行覆寫 rewrite = true
其他的設定可以保持預設即可,在正式同步之前,我們先在本機上做幾條測試資料
而在遠端機器上,此時沒有任何資料
然後在redis-shake主目錄下,執行如下的同步命令
./redis-shake.linux -conf=redis-shake.conf -type=sync
看到下面的圖示,表示執行成功,
到此這篇關於redis-shake同步redis資料的實現方法的文章就介紹到這了,更多相關redis-shake同步redis資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45