redis mysql有幾種用法?

時間 2021-05-29 23:59:17

1樓:

貌似其他回答都沒有說到這一點:redis的持久化功能,還可以防快取雪崩。應該說這才是redis支援持久化的必要性所在。

例如假設後台架構是redis+mysql,且redis關閉了持久化,redis伺服器某天突然宕機,丟失了記憶體所有快取,當redis伺服器恢復後,必然要重新從mysql拿資料做快取,如果讀資料請求非常集中,mysql可能就癱瘓了,此即為快取雪崩。

如果遇到土豪公司只用redis資料庫而不用mysql,就沒有什麼快取雪崩問題,因為此時redis根本就不是快取功能而是儲存功能了。

2樓:wuxinliulei

首先redis在key value值查詢的速度高於mysql,所以快取有利於提高效能;

redis是記憶體型資料庫,不可能儲存過大的資料;而mysql是儲存在硬碟上的,可以支援更大規模的資料,成本更低

以乙個黑名單功能為例:

mysql中的表結構可能是一行記錄的列名分別為

roleId userId serverId blackedRoleId blackedUseId blackedServerId createTime status 等等

以下幾種操作可能的流程:

1.查詢角色IdA的所有黑名單資料

1)製造A角色黑名單的blacklistrediskey,並查詢此key,是否快取有此角色的黑名單列表

若有,則直接返回,若沒有,則進入下一步

2) 向mysql查詢角色的黑名單列表,即使用sql語句,查詢到結果後

3) 使用blacklistrediskey儲存到redis當中

這裡儲存的redis資料型別為hash型別即Map,map的key為黑名單角色id,value值為黑名單角色資訊,當然也可以用list或者set來儲存;

這裡更新快取時可能會用到redis的pipeline技術,即一次性的將多條redis指令寫入redis資料庫,同時我們一般都會設定redis的快取過期時間用來清除長期不用的快取。

3樓:當浮一大大白

mysql的memory 資料庫了解下,既然用mysql了就不要再用redis了,redis能解決的場景,mysql都能解決,redis解決不了的場景,mysql也能解決了。 redis只能算是個外掛程式,如果沒有用mysql資料庫,那redis算是個不錯的解決方案。不清楚為啥在國內這麼火....

4樓:二號獵人

首先要知道mysql儲存在磁碟裡,redis儲存在記憶體裡,redis既可以用來做持久儲存,也可以做快取,而目前大多數公司的儲存都是mysql + redis,mysql作為主儲存,redis作為輔助儲存被用作快取,加快訪問讀取的速度,提高效能

那麼為什麼不直接全部用redis儲存呢?

我的看法是:因為redis儲存在記憶體中,如果儲存在記憶體中,儲存容量肯定要比磁碟少很多,那麼要儲存大量資料,只能花更多的錢去購買記憶體,造成在一些不需要高效能的地方是相對比較浪費的,所以目前基本都是mysql(主) + redis(輔),在需要效能的地方使用redis,在不需要高效能的地方使用mysql,好鋼用在刀刃上

學習Redis從這裡開始 - 非同步社群

這個講得不錯,可以看看

5樓:彼得潘大叔

一般來說,寫入資料是直接到mysql,讀取類的是redis。 這樣就說 mysql->redis的同步用的比較多。 mysql作為資料持久化和管理比redis好太多,redis大多只用來做資料讀取快取、佇列、鎖、等等的使用。

持久化的話也提供了rdb、aof 保證資料的實時不丟失。

mysql->redis實時同步可參考這個配置https://

6樓:靳洪飛

redis和mysql要根據具體業務場景去選型mysql:資料放在磁碟

redis:資料放在記憶體

redis適合放一些頻繁使用,比較熱的資料,因為是放在記憶體中,讀寫速度都非常快,一般會應用在下面一些場景

排行榜計數器

訊息佇列推送

好友關注,粉絲

還是具體問題具體分析,這裡有文章分享:Redis文章分享看能幫到你嗎?

7樓:

只是做快取的話,memcache似乎更合適

redis和mysql當然可以各自儲存不同資料啊

如果只是IO,沒有計算等耗時操作的話,單執行緒應該更高效

契 的幾種古今讀音用法 語義有何區別?

小神龍周旭 可以使用 漢字古今中外讀音查詢 語言維基 網頁版,中古擬音後有簡略說明。網址 漢字古今中外讀音查詢 語言維基 不過我也搞不清楚這個網站和 王贇 Maigo 先生是什麼關係。題主比較之後,發現 似乎都說明曾經有一種s開頭的入聲讀法 那不妨查一下字典,我建議使用 辭源 第三版 或者 漢語大字...

git rebase有哪些用法?

我來說兩個經典用法,來看看git rebase用法有多麼誘人 案例 去除提交列表中的某個commit,例如在master分支上A B C D E F,除去D。方案一 git checkout C 將HEAD切換到C提交 git cherry pick master master 即E,將E放到C後面...

介詞 in 有哪些用法?

已登出 刷過了English Prepositions Explained的in部分,我大概說一下 in的概念是這樣的 o 也就是有乙個東西被圍在邊界裡面了,和into相比,更加強調狀態而不是動作 說一下幾個困難的地方吧 其中一種是in circumstances,因為 circum 其實有in的意...