解读:在什么业务场景适合使用Redis?
Redis(Remote Dictionary Server ),即遠(yuǎn)程字典服務(wù),是一個(gè)開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。從2010年3月15日起,Redis的開發(fā)工作由VMware主持。從2013年5月開始,Redis的開發(fā)由Pivotal贊助。
那么在什么業(yè)務(wù)場(chǎng)景適合使用Redis?來看看下面的詳細(xì)介紹:
(1)會(huì)話緩存(Session Cache)
常用的一種使用Redis的情景是會(huì)話緩存(session cache)。用Redis緩存會(huì)話比其他存儲(chǔ)(如Mem cached)的優(yōu)勢(shì)在于:Redis提供持久化。當(dāng)維護(hù)一個(gè)不是嚴(yán)格要求一致性的緩存時(shí),如果用戶的購物車信息全部丟失,大部分人都會(huì)不高興的,現(xiàn)在,他們還會(huì)這樣嗎?
幸運(yùn)的是,隨著Redis這些年的改進(jìn),很容易找到怎么恰當(dāng)?shù)氖褂肦edis來緩存會(huì)話的文檔。甚至廣為人知的商業(yè)平臺(tái)Magento也提供Redis的插件。
(2)全頁緩存(FPC)
除基本的會(huì)話token之外,Redis 還提供很簡便的FPC平臺(tái)。回到一致性問題,即使重啟了Redis實(shí)例,因?yàn)橛写疟P的持久化,用戶也不會(huì)看到頁面加載速度的下降,這是一個(gè)極大改進(jìn),類似PHP本地FPC。
再次以Magento為例,Magento 提供一個(gè)插件來使用Redis 作為全頁緩存后端。
此外,對(duì)WordPress的用戶來說,Pantheon 有一個(gè)非常好的插件wp redis,這個(gè)插件能幫助你以快速度加載你曾瀏覽過的頁面。
(3)隊(duì)列
Reids在內(nèi)存存儲(chǔ)引擎領(lǐng)域的一-大優(yōu)點(diǎn)是提供list和set操作,這使得Redis能作為一個(gè)很好的消息隊(duì)列平臺(tái)來使用。Redis作為隊(duì)列使用的操作,就類似于本地程序語言(如Python)對(duì)list 的push/pop操作。
如果你快速的在Google中搜索“Redis queues",你馬上就能找到大量的開源項(xiàng)目,這些項(xiàng)目的目的就是利用Redis創(chuàng)建非常好的后端工具,以滿足各種隊(duì)列需求。例如,Celery 有一個(gè)后臺(tái)就是使用Redis作為broker,你可以從這里去查看。
(4)排行榜/計(jì)數(shù)器
Redis在內(nèi)存中對(duì)數(shù)字進(jìn)行遞增或遞減的操作實(shí)現(xiàn)的非常好。集合(Set)和有序集合(Sorted Set)也使得我們?cè)趫?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來存儲(chǔ)數(shù)據(jù)的,你可以在這里看到。
(5)發(fā)布/訂閱
后(但肯定不是不重要的)是Redis的發(fā)布/訂閱功能。發(fā)布/訂閱的使用場(chǎng)景確實(shí)非常多。我已看見人們?cè)谏缃痪W(wǎng)絡(luò)連接中使用,還可作為基于發(fā)布/訂閱的腳本觸發(fā)器,甚至用Redis的發(fā)布/訂閱功能來建立聊天系統(tǒng)!
什么業(yè)務(wù)場(chǎng)景適合使用Redis?通過上面的詳細(xì)介紹大家都了解了嗎?希望可以給大家?guī)韼椭?#xff0c;如果大家正在學(xué)習(xí)Java知識(shí)或者是對(duì)Java知識(shí)比較感興趣的話,可以關(guān)注小千,后期分享更多Java知識(shí)。
?本文來自千鋒教育,轉(zhuǎn)載請(qǐng)注明出處。
總結(jié)
以上是生活随笔為你收集整理的解读:在什么业务场景适合使用Redis?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这五个网站可以让你免费学习编程,快收藏!
- 下一篇: Python技巧-只用一行代码轻松实现图