教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Redis適合在哪些場景使用?【Java面試】

更新時(shí)間:2021年03月05日15時(shí)46分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

(1)會話緩存(Session Cache)
最常用的一種使用Redis的情景是會話緩存(session cache)。用Redis緩存會話比其他存儲(如Mem cached)的優(yōu)勢在于:Redis提供持久化。當(dāng)維護(hù)一個(gè)不是嚴(yán)格要求一致性的緩存時(shí),如果用戶的購物車信息全部丟失,大部分人都會不高興的,現(xiàn)在,他們還會這樣嗎?

幸運(yùn)的是,隨著Redis這些年的改進(jìn),很容易找到怎么恰當(dāng)?shù)氖褂肦edis來緩存會話的文檔。甚至廣為人知的商業(yè)平臺Magento也提供Redis的插件。

(2)全頁緩存(FPC)

除基本的會話token之外,Redis 還提供很簡便的FPC平臺?;氐揭恢滦詥栴},即使重啟了Redis實(shí)例,因?yàn)橛写疟P的持久化,用戶也不會看到頁面加載速度的下降,這是一個(gè)極大改進(jìn),類似PHP本地FPC。

再次以Magento為例,Magento 提供一個(gè)插件來使用Redis 作為全頁緩存后端。

此外,對WordPress的用戶來說,Pantheon 有一個(gè)非常好的插件wp redis,這個(gè)插件能幫助你以最快速度加載你曾瀏覽過的頁面。

(3)隊(duì)列

Reids在內(nèi)存存儲引擎領(lǐng)域的一-大優(yōu)點(diǎn)是提供list和set操作,這使得Redis能作為一個(gè)很好的消息隊(duì)列平臺來使用。Redis作為隊(duì)列使用的操作,就類似于本地程序語言(如Python)對list 的push/pop操作。

如果你快速的在Google中搜索“Redis queues",你馬上就能找到大量的開源項(xiàng)目,這些項(xiàng)目的目的就是利用Redis創(chuàng)建非常好的后端工具,以滿足各種隊(duì)列需求。例如,Celery 有一個(gè)后臺就是使用Redis作為broker,你可以從這里去查看。

(4)排行榜/計(jì)數(shù)器

Redis在內(nèi)存中對數(shù)字進(jìn)行遞增或遞減的操作實(shí)現(xiàn)的非常好。集合(Set)和有序集合(Sorted Set)也使得我們在執(zhí)行這些操作的時(shí)候變的非常簡單,Redis 只是正好提供了這

兩種數(shù)據(jù)結(jié)構(gòu)。所以,我們要從排序集合中獲取到排名最靠前的10個(gè)用戶-我們稱之為“user_scores", 我們只需要像下面一樣執(zhí)行即可:

當(dāng)然,這是假定你是根據(jù)你用戶的分?jǐn)?shù)做遞增的排序。如果你想返回用戶及用戶的分?jǐn)?shù),你需要這樣執(zhí)行:

ZRANGE user scores 0 10 WITHSCORES

Agora Games就是一個(gè)很好的例子,用Ruby實(shí)現(xiàn)的,它的排行榜就是使用Redis來存儲數(shù)據(jù)的,你可以在這里看到。

(5)發(fā)布/訂閱

最后(但肯定不是最不重要的)是Redis的發(fā)布/訂閱功能。發(fā)布/訂閱的使用場景確實(shí)非常多。我已看見人們在社交網(wǎng)絡(luò)連接中使用,還可作為基于發(fā)布/訂閱的腳本觸發(fā)器,甚至用Redis的發(fā)布/訂閱功能來建立聊天系統(tǒng)!




下面是傳智教育公開的幾套Java課程,您可以下載和在線觀看學(xué)習(xí),如果想深入學(xué)習(xí)java并想找到不錯(cuò)的java開發(fā)相關(guān)工作,建議報(bào)班學(xué)習(xí)傳智教育Java高級軟件工程師課程。獲取【Java視頻教程+資料】加播妞1605146928606_課程資料.jpg:435946716。



猜你喜歡

Redis如何實(shí)現(xiàn)分布式阻塞隊(duì)列?

SpringBoot整合NoSQL 數(shù)據(jù)庫(Redis)實(shí)現(xiàn)緩存

redis生成自增長ID教程

為什么redis可以做緩存?

Redis 持久化詳細(xì)介紹

傳智教育Java培訓(xùn)課程

0 分享到:
和我們在線交談!