什么情況下傾向于使用redis

什么情況下傾向于使用redis

什么時(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使用教程欄目!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊5 分享