mysql redis 實(shí)時(shí)同步 如何使用redis做mysql的緩存?
如何使用redis做mysql的緩存?Redis用于讀寫數(shù)據(jù),隊(duì)列處理器用于定期向MySQL寫入數(shù)據(jù)。同時(shí),要避免沖突。啟動(dòng)redis時(shí),從MySQL中讀取所有表鍵值并存儲(chǔ)在redis中。向redis
如何使用redis做mysql的緩存?
Redis用于讀寫數(shù)據(jù),隊(duì)列處理器用于定期向MySQL寫入數(shù)據(jù)。同時(shí),要避免沖突。啟動(dòng)redis時(shí),從MySQL中讀取所有表鍵值并存儲(chǔ)在redis中。向redis寫入數(shù)據(jù)時(shí),redis主鍵會(huì)自動(dòng)遞增并讀取。如果MySQL更新失敗,需要及時(shí)清除緩存并同步redis主鍵。這樣,redis主要用于實(shí)時(shí)讀寫redis,而MySQL數(shù)據(jù)則通過(guò)隊(duì)列異步處理,減輕MySQL的壓力。但該方法的應(yīng)用場(chǎng)景主要基于高并發(fā),redis的高可用集群架構(gòu)相對(duì)復(fù)雜,一般不推薦使用。
mysql優(yōu)化教程?
1. 優(yōu)化SQL語(yǔ)句、索引和表結(jié)構(gòu)。
2. 打開(kāi)查詢緩存時(shí),查詢緩存緩存選擇查詢及其結(jié)果數(shù)據(jù)集。當(dāng)執(zhí)行同一個(gè)select查詢時(shí),MySQL將直接從內(nèi)存中檢索結(jié)果,這加快了查詢的執(zhí)行速度,減少了對(duì)數(shù)據(jù)庫(kù)的壓力。執(zhí)行show變量,比如“have”uqueryucache,您可以檢查MySQL查詢緩存是否打開(kāi)。要打開(kāi)查詢緩存,只需配置我的.cnf具體如下:
querycacheuuutype=1
querycacheuusize=128M
querycacheulimit=1m
保存后重新啟動(dòng)mysql。
3. 選擇InnoDB存儲(chǔ)引擎。MySQL常用的存儲(chǔ)引擎是MyISAM和InnoDB。它們之間的區(qū)別如下:
MyISAM
查詢速度快;
支持表級(jí)鎖,在此期間不能對(duì)表執(zhí)行其他操作;
支持全文檢索;
支持?jǐn)?shù)據(jù)壓縮、自復(fù)制、查詢緩存和數(shù)據(jù)加密;
不支持外鍵;
不支持事務(wù),因此沒(méi)有提交和回滾操作;
不支持群集數(shù)據(jù)庫(kù)。
InnoDB
支持行級(jí)鎖;
支持外鍵和外鍵約束強(qiáng)制執(zhí)行;
支持事務(wù),可以執(zhí)行提交和回滾操作;
支持?jǐn)?shù)據(jù)壓縮、自復(fù)制、查詢緩存和數(shù)據(jù)加密;
可以在群集環(huán)境中使用,但不完全支持。InnoDB表可以轉(zhuǎn)換為NDB存儲(chǔ)引擎,可以在集群環(huán)境下使用。