自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Redis能干啥?細(xì)看11種Web應(yīng)用場(chǎng)景

原創(chuàng)
運(yùn)維 系統(tǒng)運(yùn)維 Redis
Redis的一個(gè)很大好處就是可以不用整個(gè)轉(zhuǎn)入到這個(gè)數(shù)據(jù)庫(kù),而是可以沿用之前的MySQL等數(shù)據(jù)庫(kù),而僅在一些特定的應(yīng)用場(chǎng)景通過(guò)Redis的特性提高效率。本文列出了11個(gè)這樣的Web應(yīng)用場(chǎng)景,如顯示最新的項(xiàng)目列表、刪除和過(guò)濾、排行榜等相關(guān)需求。

【51CTO精選譯文】在

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

1.在主頁(yè)中顯示***的項(xiàng)目列表。

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

2.刪除和過(guò)濾。

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

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

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

4.按照用戶投票和時(shí)間排序。

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

5.過(guò)期項(xiàng)目處理。

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

6.計(jì)數(shù)。

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

7.特定時(shí)間內(nèi)的特定項(xiàng)目。

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

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

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

9.Pub/Sub。

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

10.隊(duì)列。

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

11.緩存。

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

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

原文:11 Common Web Use Cases Solved In Redis

【編輯推薦】

  1. 幾點(diǎn)建議,讓Redis在你的系統(tǒng)中發(fā)揮更大作用
  2. 緩存大量小文件?Redis是***!
  3. 主流NoSQL數(shù)據(jù)庫(kù)之Redis全面評(píng)測(cè)
責(zé)任編輯:yangsai 來(lái)源: 51CTO.com
相關(guān)推薦

2015-04-07 10:46:48

Redis

2020-04-22 09:42:17

大數(shù)據(jù)機(jī)器學(xué)習(xí)技術(shù)

2015-08-04 21:35:37

東軟UniEAPSaCa

2020-11-04 07:13:16

程序員職業(yè)工資

2024-12-19 08:50:38

Redis存儲(chǔ)系統(tǒng)

2020-09-01 17:15:58

大數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)

2021-05-10 15:40:11

大數(shù)據(jù)IT互聯(lián)網(wǎng)

2018-08-15 09:48:27

數(shù)據(jù)庫(kù)Redis應(yīng)用場(chǎng)景

2020-03-31 19:14:53

5G網(wǎng)速手機(jī)

2024-09-19 08:08:25

2023-11-13 08:31:25

SpringRedis存儲(chǔ)

2018-05-04 16:00:00

2019-10-11 07:56:37

物聯(lián)網(wǎng)應(yīng)用物聯(lián)網(wǎng)IOT

2011-05-17 15:24:18

Shibboleth認(rèn)證

2021-09-02 18:47:02

redis存儲(chǔ)中間件Remote Dict

2024-03-29 08:33:10

應(yīng)用場(chǎng)景存儲(chǔ)搜索

2024-03-13 14:57:37

2012-10-23 09:32:07

2021-06-15 09:20:08

Redis數(shù)據(jù)類型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)