什么時(shí)候傾向于選擇redis?
1、復(fù)雜數(shù)據(jù)結(jié)構(gòu)
value是哈希,列表,集合,有序集合等復(fù)雜數(shù)據(jù)結(jié)構(gòu)的時(shí)候,選擇redis更合適,因?yàn)閙c無法滿足這樣的需求。
典型場景:用戶消息,評論,訂單列表等?
2、持久化
mc不支持持久化
但redis持久化的使用需要注意?
千萬不要將redis作為數(shù)據(jù)庫來使用:
1)redis的定期快照不能保證數(shù)據(jù)不丟失
2)redis的AOF會降低效率,并且不能支持太大的數(shù)據(jù)量
緩存場景,開啟持久化有什么利弊?
優(yōu)點(diǎn):down機(jī)重啟,內(nèi)存中能夠快速恢復(fù)熱點(diǎn)數(shù)據(jù),分擔(dān)數(shù)據(jù)庫壓力,沒有cache預(yù)熱過程
缺點(diǎn):redis掛了以后,數(shù)據(jù)庫中數(shù)據(jù)有修改,可能導(dǎo)致redis中數(shù)據(jù)不一致
只讀場景,或者一些允許不一致的業(yè)務(wù)場景,可以嘗試開啟redis持久化功能
3、天然高可用
redis天然支持集群功能,可實(shí)現(xiàn)主從復(fù)制,讀寫分離
Redis官方提供了sentinel集群管理工具,能夠?qū)崿F(xiàn)主從服務(wù)監(jiān)控,故障自動轉(zhuǎn)移
Mc想要實(shí)現(xiàn)高可用,需要進(jìn)行二次開發(fā)
需要注意的是,大部分業(yè)務(wù)場景,緩存真的需要高可用嗎?
1)存場景,很多時(shí)候,是允許cache miss
2)緩存掛了,很多時(shí)候可以通過DB讀取數(shù)據(jù)
4、存儲的value很大
mc的value存儲,最大為1m,如果存儲的value很大,只能使用redis
更多Redis相關(guān)知識,請?jiān)L問Redis使用教程欄目!