華為云計(jì)算 云知識(shí) Redis 的應(yīng)用場(chǎng)景有哪些
Redis 的應(yīng)用場(chǎng)景有哪些

Redis應(yīng)用場(chǎng)景

很多大型電商網(wǎng)站、 視頻直播 和游戲應(yīng)用等,存在大規(guī)模數(shù)據(jù)訪問,對(duì)數(shù)據(jù)查詢效率要求高,且數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單,不涉及太多關(guān)聯(lián)查詢。這種場(chǎng)景使用Redis,在速度上對(duì)傳統(tǒng)磁盤 數(shù)據(jù)庫 有很大優(yōu)勢(shì),能夠有效減少數(shù)據(jù)庫磁盤IO,提高數(shù)據(jù)查詢效率,減輕管理維護(hù)工作量,降低數(shù)據(jù)庫存儲(chǔ)成本。Redis對(duì)傳統(tǒng)磁盤數(shù)據(jù)庫是一個(gè)重要的補(bǔ)充,成為了互聯(lián)網(wǎng)應(yīng)用,尤其是支持高并發(fā)訪問的互聯(lián)網(wǎng)應(yīng)用必不可少的基礎(chǔ)服務(wù)之一。

以下舉幾個(gè)典型樣例:

1.(電商網(wǎng)站)秒殺搶購(gòu)

電商網(wǎng)站的商品類目、推薦系統(tǒng)以及秒殺搶購(gòu)活動(dòng),適宜使用Redis緩存數(shù)據(jù)庫。

例如秒殺搶購(gòu)活動(dòng),并發(fā)高,對(duì)于傳統(tǒng)關(guān)系型數(shù)據(jù)庫來說訪問壓力大,需要較高的硬件配置(如磁盤IO)支撐。Redis數(shù)據(jù)庫,單節(jié)點(diǎn)QPS支撐能達(dá)到10萬,輕松應(yīng)對(duì)秒殺并發(fā)。實(shí)現(xiàn)秒殺和數(shù)據(jù)加鎖的命令簡(jiǎn)單,使用SET、GET、DEL、RPUSH等命令即可。

加鎖部分,可參考最佳實(shí)踐:使用DCS實(shí)現(xiàn)分布式鎖

2.(視頻直播)消息彈幕

直播間的在線用戶列表,禮物排行榜,彈幕消息等信息,都適合使用Redis中的SortedSet結(jié)構(gòu)進(jìn)行存儲(chǔ)。
例如彈幕消息,可使用ZREVRANGEBYSCORE排序返回,在Redis5.0中,新增了zpopmax,zpopmin命令,更加方便消息處理。

3.(游戲應(yīng)用)游戲排行榜

在線游戲一般涉及排行榜實(shí)時(shí)展現(xiàn),比如列出當(dāng)前得分最高的10個(gè)用戶。使用Redis的有序集合存儲(chǔ)用戶排行榜非常合適,有序集合使用非常簡(jiǎn)單,提供多達(dá)20個(gè)操作集合的命令。

4.(社交APP)返回最新評(píng)論/回復(fù)

在web類應(yīng)用中,常有“最新評(píng)論”之類的查詢,如果使用關(guān)系型數(shù)據(jù)庫,往往涉及到按評(píng)論時(shí)間逆排序,隨著評(píng)論越來越多,排序效率越來越低,且并發(fā)頻繁。

使用Redis的List(鏈表),例如存儲(chǔ)最新1000條評(píng)論,當(dāng)請(qǐng)求的評(píng)論數(shù)在這個(gè)范圍,就不需要訪問磁盤數(shù)據(jù)庫,直接從緩存中返回,減少數(shù)據(jù)庫壓力的同時(shí),提升APP的響應(yīng)速度。