Redis 在現實世界的 5 個用法


  Redis是一個強大的內存數據結構存儲,包含數據庫,緩存和消息代理等多種用途。大多數人常常認爲它不過是一個簡單的鍵值存儲,但其實它有更多的能力。下面我將會總結一些Redis能夠作的事情的真實例子。數據庫

  1.全頁面緩存緩存

  首先是整頁緩存。若是你正在使用服務器端呈現的內容,則不須要爲每一個單獨的請求從新渲染每一個頁面。使用如Redis這樣的緩存,你能夠緩存常常請求的內容,從而大大減小請求最多的頁面的延遲,而且大多數框架針對Redis緩存頁面都有hooks。服務器

  簡單命令網絡

  / Set the page that will last 1 minuteSET key ... EX 60// Get the pageGET keysession

  2.排行榜數據結構

  Redis使人耀眼的地方之一就是排行榜。因爲Redis在內存中,所以能夠很是快速和高效地處理遞增和遞減。將此與每一個請求運行SQL查詢比較,性能收益巨大!這與Redis的排序集相結合意味着你能夠以毫秒爲單位抓取列表中評分最高的項目,並且實現起來很是容易。框架

  簡單命令dom

  // Add an item to the sorted setZADD sortedSet 1 one// Get all items from the sorted setZRANGE sortedSet 0 -1// Get all items from the sorted set with their score性能

  ZRANGE sortedSet 0 -1 WITHSCORES代理

  3.會話Session存儲

  我所見的Redis最多見的用途是會話存儲。與其餘會話存儲(如Memcache)不一樣,Redis能夠保留數據,以便在緩存中止的狀況下,在從新啓動時,全部數據仍然存在。即使不是須要嚴格持續的任務,此功能仍能夠爲你的用戶省去大量的麻煩。沒有人會樂於見到他們的會話被平白無故隨機刪掉。

  簡單命令

  // Set session that will last 1 minuteSET randomHash {userId} EX 60// Get userIdGET randomHash

  4.隊列

  使用Redis能夠作的一個不太常見,但很是有用的事情是排隊。不管是電子郵件隊列仍是其餘應用程序使用的數據,你均可以在Redis中建立一個高效的隊列。任何熟悉堆棧以及會push和pop項目的開發人員均可以輕鬆天然地使用此功能。

  簡單命令

  // Add a Message

  HSET messages ZADD due // Recieving Message

  ZRANGEBYSCORE due -inf LIMIT 0 1

  HGET messages // Delete Message

  ZREM due HDEL messages

  5.pub/sub

  Redis在真實世界的最終用法即我將在這篇文章中提出的pub / sub。這是Redis內置的最強大的功能之一;獲得的多是無限的。你能夠建立一個實時聊天系統,在社交網絡上觸發好友請求的通知等等。這個功能是Redis提供的最被低估的功能之一,但功能很是強大,並且使用簡單。

  簡單命令

  // Add a message to a channelPUBLISH channel message// Recieve messages from a channelSUBSCRIBE channel

  結論

  我但願你會喜歡這些Redis在真實世界的使用。雖然這篇文章只抓住了Redis能爲你作的事情的表面,可是我但願你能從中得到應如何充分利用Redis的啓發。

相關文章
相關標籤/搜索