Redis的11種Web應用情境

來源:互聯網
上載者:User
Redis的11種Web應用情境 2015-04-07 10:46 佚名 灰仔的部落格 字型大小: T |  T

一些Redis原語命令比如LPUSH、LTRIM和 LREM等等能夠用來協助開發人員完成需要的任務——這些任務在傳統的資料庫儲存中非常困難或緩慢。這是一篇非常有用並且實際的文章。那麼要如何在你的架構中完成這些任務呢?

AD:51CTO技術沙龍 | 賦予APP不同凡響的互動和體驗>>

一些Redis原語命令比如LPUSH、LTRIM和 LREM等等能夠用來協助開發人員完成需要的任務——這些任務在傳統的資料庫儲存中非常困難或緩慢。這是一篇非常有用並且實際的文章。那麼要如何在你的架構中完成這些任務呢?

下面列出11種Web應用情境,在這些情境下可以充分的利用Redis的特性,大大提高效率。

1.在首頁中顯示最新的項目列表

Redis使用的是常駐記憶體的緩衝,速度非常快。LPUSH用來插入一個內容ID,作為關鍵字儲存在列表頭部。LTRIM用來限制列表中的項目數最多為5000。如果使用者需要的檢索的資料量超越這個緩衝容量,這時才需要把請求發送到資料庫。

2.刪除和過濾

如果一篇文章被刪除,可以使用LREM從緩衝中徹底清除掉。

3.熱門排行榜及相關問題

熱門排行榜(leader board)按照得分進行排序。ZADD命令可以直接實現這個功能,而ZREVRANGE命令可以用來按照得分來擷取前100名的使用者,ZRANK可以用來擷取使用者排名,非常直接而且操作容易。

4.按照使用者投票和時間排序

這就像Reddit的熱門排行榜,得分會隨著時間變化。LPUSH和LTRIM命令結合運用,把文章添加到一個列表中。一項背景工作用來擷取列表,並重新計算資料行表的排序,ZADD命令用來按照新的順序填充產生列表。列表可以實現非常快速的檢索,即使是負載很重的網站。

5.到期項目處理

使用unix時間作為關鍵字,用來保持列表能夠按時間排序。對current_time和time_to_live進行檢索,完成尋找到期項目的艱巨任務。另一項背景工作使用ZRANGE...WITHSCORES進行查詢,刪除到期的條目。

6.計數

進行各種資料統計的用途是非常廣泛的,比如想知道什麼時候封鎖一個IP地址。INCRBY命令讓這些變得很容易,通過原子遞增保持計數;GETSET用來重設計數器;到期屬性用來確認一個關鍵字什麼時候應該刪除。

7.特定時間內的特定項目

這是特定訪問者的問題,可以通過給每次頁面瀏覽使用SADD命令來解決。SADD不會將已經存在的成員添加到一個集合。

8.即時分析正在發生的情況,用於資料統計與防止垃圾郵件等

使用Redis原語命令,更容易實施垃圾郵件過濾系統或其他即時跟蹤系統。

9.Pub/Sub

在更新中保持使用者對資料的映射是系統中的一個普遍任務。Redis的pub/sub功能使用了SUBSCRIBE、UNSUBSCRIBE和PUBLISH命令,讓這個變得更加容易。

10.隊列

在當前的編程中隊列隨處可見。除了push和pop類型的命令之外,Redis還有阻塞隊列的命令,能夠讓一個程式在執行時被另一個程式添加到隊列。你也可以做些更有趣的事情,比如一個旋轉更新的RSS feed隊列。

11.緩衝

Redis緩衝使用的方式與memcache相同。

網路應用不能無休止地進行模型的戰爭,看看這些Redis的原語命令,儘管簡單但功能強大,把它們加以組合,所能完成的就更無法想象。當然,你可以專門編寫代碼來完成所有這些操作,但Redis實現起來顯然更為輕鬆。

博文出處:http://my.oschina.net/HeAlvin

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.