Redis的11種Web應(yīng)用場景
來源:易賢網(wǎng) 閱讀:974 次 日期:2015-08-31 15:40:43
溫馨提示:易賢網(wǎng)小編為您整理了“Redis的11種Web應(yīng)用場景”,方便廣大網(wǎng)友查閱!

一些Redis原語命令比如LPUSH、LTRIM和 LREM等等能夠用來幫助開發(fā)者完成需要的任務(wù)——這些任務(wù)在傳統(tǒng)的數(shù)據(jù)庫存儲中非常困難或緩慢。這是一篇非常有用并且實際的文章。那么要如何在你的框架中完成這些任務(wù)呢?

Redis的11種Web應(yīng)用場景

下面列出11種Web應(yīng)用場景,在這些場景下可以充分的利用Redis的特性,大大提高效率。

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

Redis使用的是常駐內(nèi)存的緩存,速度非???。LPUSH用來插入一個內(nèi)容ID,作為關(guān)鍵字存儲在列表頭部。LTRIM用來限制列表中的項目數(shù)最多為5000。如果用戶需要的檢索的數(shù)據(jù)量超越這個緩存容量,這時才需要把請求發(fā)送到數(shù)據(jù)庫。

2.刪除和過濾

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

3.排行榜及相關(guān)問題

排行榜(leader board)按照得分進(jìn)行排序。ZADD命令可以直接實現(xiàn)這個功能,而ZREVRANGE命令可以用來按照得分來獲取前100名的用戶,ZRANK可以用來獲取用戶排名,非常直接而且操作容易。

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

這就像Reddit的排行榜,得分會隨著時間變化。LPUSH和LTRIM命令結(jié)合運用,把文章添加到一個列表中。一項后臺任務(wù)用來獲取列表,并重新計算列表的排序,ZADD命令用來按照新的順序填充生成列表。列表可以實現(xiàn)非??焖俚臋z索,即使是負(fù)載很重的站點。

5.過期項目處理

使用unix時間作為關(guān)鍵字,用來保持列表能夠按時間排序。對current_time和time_to_live進(jìn)行檢索,完成查找過期項目的艱巨任務(wù)。另一項后臺任務(wù)使用ZRANGE...WITHSCORES進(jìn)行查詢,刪除過期的條目。

6.計數(shù)

進(jìn)行各種數(shù)據(jù)統(tǒng)計的用途是非常廣泛的,比如想知道什么時候封鎖一個IP地址。INCRBY命令讓這些變得很容易,通過原子遞增保持計數(shù);GETSET用來重置計數(shù)器;過期屬性用來確認(rèn)一個關(guān)鍵字什么時候應(yīng)該刪除。

7.特定時間內(nèi)的特定項目

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

8.實時分析正在發(fā)生的情況,用于數(shù)據(jù)統(tǒng)計與防止垃圾郵件等

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

9.Pub/Sub

在更新中保持用戶對數(shù)據(jù)的映射是系統(tǒng)中的一個普遍任務(wù)。Redis的pub/sub功能使用了SUBSCRIBE、UNSUBSCRIBE和PUBLISH命令,讓這個變得更加容易。

10.隊列

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

11.緩存

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

網(wǎng)絡(luò)應(yīng)用不能無休止地進(jìn)行模型的戰(zhàn)爭,看看這些Redis的原語命令,盡管簡單但功能強(qiáng)大,把它們加以組合,所能完成的就更無法想象。當(dāng)然,你可以專門編寫代碼來完成所有這些操作,但Redis實現(xiàn)起來顯然更為輕松。

更多信息請查看IT技術(shù)專欄

更多信息請查看數(shù)據(jù)庫
易賢網(wǎng)手機(jī)網(wǎng)站地址:Redis的11種Web應(yīng)用場景
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機(jī)號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)