解讀:在什麼業務場景適合使用Redis?

千鋒武漢發表於2021-08-10

  Redis(Remote Dictionary Server ),即遠端字典服務,是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。從2010年3月15日起,Redis的開發工作由VMware主持。從2013年5月開始,Redis的開發由Pivotal贊助。

1

  那麼在什麼業務場景適合使用Redis?來看看下面的詳細介紹:

   (1)會話快取(Session Cache)

  常用的一種使用Redis的情景是會話快取(session cache)。用Redis快取會話比其他儲存(如Mem cached)的優勢在於:Redis提供持久化。當維護一個不是嚴格要求一致性的快取時,如果使用者的購物車資訊全部丟失,大部分人都會不高興的,現在,他們還會這樣嗎?

  幸運的是,隨著Redis這些年的改進,很容易找到怎麼恰當的使用Redis來快取會話的文件。甚至廣為人知的商業平臺Magento也提供Redis的外掛。

   (2)全頁快取(FPC)

  除基本的會話token之外,Redis 還提供很簡便的FPC平臺。回到一致性問題,即使重啟了Redis例項,因為有磁碟的持久化,使用者也不會看到頁面載入速度的下降,這是一個極大改進,類似PHP本地FPC。

  再次以Magento為例,Magento 提供一個外掛來使用Redis 作為全頁快取後端。

  此外,對WordPress的使用者來說,Pantheon 有一個非常好的外掛wp redis,這個外掛能幫助你以快速度載入你曾瀏覽過的頁面。

   (3)佇列

  Reids在記憶體儲存引擎領域的一-大優點是提供list和set操作,這使得Redis能作為一個很好的訊息佇列平臺來使用。Redis作為佇列使用的操作,就類似於本地程式語言(如Python)對list 的push/pop操作。

  如果你快速的在Google中搜尋“Redis queues",你馬上就能找到大量的開源專案,這些專案的目的就是利用Redis建立非常好的後端工具,以滿足各種佇列需求。例如,Celery 有一個後臺就是使用Redis作為broker,你可以從這裡去檢視。

   (4)排行榜/計數器

  Redis在記憶體中對數字進行遞增或遞減的操作實現的非常好。集合(Set)和有序集合(Sorted Set)也使得我們在執行這些操作的時候變的非常簡單,Redis 只是正好提供了這

  兩種資料結構。所以,我們要從排序集合中獲取到排名靠前的10個使用者-我們稱之為“user_scores", 我們只需要像下面一樣執行即可:

  當然,這是假定你是根據你使用者的分數做遞增的排序。如果你想返回使用者及使用者的分數,你需要這樣執行:

  ZRANGE user scores 0 10 WITHSCORES

  Agora Games就是一個很好的例子,用Ruby實現的,它的排行榜就是使用Redis來儲存資料的,你可以在這裡看到。

   (5)釋出/訂閱

  後(但肯定不是不重要的)是Redis的釋出/訂閱功能。釋出/訂閱的使用場景確實非常多。我已看見人們在社交網路連線中使用,還可作為基於釋出/訂閱的指令碼觸發器,甚至用Redis的釋出/訂閱功能來建立聊天系統!

  什麼業務場景適合使用Redis?透過上面的詳細介紹大家都瞭解了嗎?希望可以給大家帶來幫助,如果大家正在學習Java知識或者是對Java知識比較感興趣的話,可以關注小千,後期分享更多Java知識。

  本文來自千鋒教育,轉載請註明出處。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2785923/,如需轉載,請註明出處,否則將追究法律責任。

相關文章