canal同步資料到redis

2021-10-04 22:03:33 字數 1242 閱讀 7303

canal原理:canal需要使用到mysql,但canal是基於mysql的主從模式實現的,所以必須先開啟binlog

(1) 連線到mysql中,並修改/etc/mysql/mysql.conf.d/mysqld.cnf 需要開啟主 從模式,開啟binlog模式。

執行如下命令,編輯mysql配置檔案

命令列如下:

docker exec -it mysql /bin/bash

cd /etc/mysql/mysql.conf.d

vi mysqld.cnf

修改mysqld.cnf配置檔案,新增如下配置:

log-bin/var/lib/mysql/mysql-bin

server-id=12345

(2)重啟mysql容器

docker restart mysql

1.流程圖

如上圖,每次執行廣告操作的時候,會記錄操作日誌到,然後將操作日誌傳送給canal,canal將操作記錄傳送給canal微服務,canal微服務根據修改的分類id呼叫content微服務查詢分類對應的所有廣告,canal微服務再將所有廣告存入到redis快取。

(1)配置redis

修改監聽類canaldataeventlistener,實現監聽廣告的增刪改,並根據增刪改的資料使用feign查詢對應分類的所有廣告,將廣告存入到redis中

@canaleventlistener

public

class

canaldataeventlistener

, eventtype =

)public

void

oneventcustomupdate

(canalentry.eventtype eventtype, canalentry.rowdata rowdata)

private string getcolumnvalue

(canalentry.eventtype eventtype, canalentry.rowdata rowdata)}}

else}}

return categoryid;

}}

canal資料同步mysql到tidb

canal進行資料同步 將mysql資料同步至tidb,方便其他業務和資料的統計 遇到的坑 資料檢查是乙個問題 兩台機器搭建canal server集群遇到問題 存量資料更新時 xorm中對於xorm created和update資料會進行當前時間的替換 監聽binlog進行更新,資料庫update...

MYSQL快速同步資料到Redis

舉例場景 儲存遊戲玩家的任務資料,遊戲伺服器啟動時將mysql中玩家的資料同步到redis中。當然你可以如下思路 今天我們用linux系統終端執行該shell指令碼或者直接執行該系統命令,即可將mysql資料庫game db的表table mission資料同步到redis中鍵missions中去。...

MYSQL快速同步資料到Redis

舉例場景 儲存遊戲玩家的任務資料,遊戲伺服器啟動時將mysql中玩家的資料同步到redis中。從mysql中將資料匯入到redis的hash結構中。當然,最直接的做法就是遍歷mysql資料,一條一條寫入到redis中。這樣沒什麼錯,但是速度會非常慢。如果能夠想法使得mysql的查詢輸出資料直接能夠與...