redis 是一個強(qiáng)大的內(nèi)存型存儲,具有豐富的數(shù)據(jù)結(jié)構(gòu),使其可以應(yīng)用于很多方面,包括作為數(shù)據(jù)庫、緩存、消息隊列等等。
如果你的印象中Redis只是一個 key-value 存儲,那就錯過了Redis很多強(qiáng)大的功能,下面就是實際應(yīng)用場景中5個最普遍的案例。
1、全頁面緩存
如果你使用的是服務(wù)器端內(nèi)容渲染,你又不想為每個請求重新渲染每個頁面,就可以使用 Redis 把常被請求的內(nèi)容緩存起來,能夠大大的降低頁面請求的延遲,已經(jīng)有很多框架用Redis來緩存頁面,這就是頁面靜態(tài)化的一種方式。
2、 排行榜
Redis 基于內(nèi)存,可以非常快速高效的處理增加和減少的操作,相比于使用 SQL 請求的處理方式,性能的提升是非常巨大的。
Redis 的有序集合可以輕松實現(xiàn)“從一個大型列表中取得排名最高的N個元素”,毫秒級,而且非常簡單。
3、 Session 存儲
這可能是應(yīng)用最廣的點了,相比較于類似 memcache 的 session 存儲,Redis 具有緩存數(shù)據(jù)持久化的能力,當(dāng)緩存因出現(xiàn)問題而重啟后,之前的緩存數(shù)據(jù)還在那兒,這個就比較實用,避免了因為session突然消失帶來的用戶體驗問題。
4、隊列
例如 email 的發(fā)送隊列、等待被其他應(yīng)用消費的數(shù)據(jù)隊列,Redis 可以輕松而自然的創(chuàng)建出一個高效的隊列。
5、發(fā)布/訂閱
pub/sub 是 Redis 內(nèi)置的一個非常強(qiáng)大的特性,例如可以創(chuàng)建一個實時的聊天系統(tǒng)、社交網(wǎng)絡(luò)中的通知觸發(fā)器等等。