華為云計算 云知識 Redis 的應用場景有哪些
Redis 的應用場景有哪些

Redis應用場景

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

以下舉幾個典型樣例:

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

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

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

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

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

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

3.(游戲應用)游戲排行榜

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

4.(社交APP)返回最新評論/回復

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

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