久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Redis的應(yīng)用場(chǎng)景是什么

共計(jì) 1617 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。

自動(dòng)寫代碼機(jī)器人,免費(fèi)開(kāi)通

丸趣 TV 小編給大家分享一下 Redis 的應(yīng)用場(chǎng)景是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一丶 Redis 介紹

Redis 是一個(gè)開(kāi)源的 key—value 型 單線程 數(shù)據(jù)庫(kù),支持 string、list、set、zset 和 hash 類型數(shù)據(jù)。

默認(rèn)端口:6379

默認(rèn)數(shù)據(jù)庫(kù)數(shù)量:16

二、優(yōu)點(diǎn):

1.nosql 數(shù)據(jù)庫(kù)沒(méi)有關(guān)聯(lián)關(guān)系,數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單,拓展表比較容易

2.nosql 讀取速度快,對(duì)較大數(shù)據(jù)處理快

三、適用場(chǎng)景:

1. 數(shù)據(jù)高并發(fā)的讀寫

2. 海量數(shù)據(jù)的讀寫

對(duì)擴(kuò)展性要求高的數(shù)據(jù)

四、不適場(chǎng)景:

1. 需要事務(wù)支持(非關(guān)系型數(shù)據(jù)庫(kù))

2. 基于 sql 結(jié)構(gòu)化查詢儲(chǔ)存,關(guān)系復(fù)雜

五、應(yīng)用場(chǎng)景

下面這些作者是 Redis 作者 @antirez,他描述了 Redis 比較適合的一些應(yīng)用場(chǎng)景,NoSQLFan 簡(jiǎn)單列舉在這里,供大家一覽:

1. 取最新 N 個(gè)數(shù)據(jù)的操作

比如典型的取你網(wǎng)站的最新文章,通過(guò)下面方式,我們可以將最新的 5000 條評(píng)論的 ID 放在 Redis 的 List 集合中,并將超出集合部分從數(shù)據(jù)庫(kù)獲取

使用 LPUSH latest.comments ID 命令,向 list 集合中插入數(shù)據(jù)

插入完成后再用 LTRIM latest.comments 0 5000 命令使其永遠(yuǎn)只保存最近 5000 個(gè) ID

然后我們?cè)诳蛻舳双@取某一頁(yè)評(píng)論時(shí)可以用下面的邏輯(偽代碼)

FUNCTION get_latest_comments(start,num_items):
 id_list = redis.lrange(latest.comments ,start,start+num_items-1)
 IF id_list.length   num_items
 id_list = SQL_DB(SELECT ... ORDER BY time LIMIT ...)
 END
 RETURN id_list
END

如果你還有不同的篩選維度,比如某個(gè)分類的最新 N 條,那么你可以再建一個(gè)按此分類的 List,只存 ID 的話,Redis 是非常高效的。

2. 排行榜應(yīng)用,取 TOP N 操作

這個(gè)需求與上面需求的不同之處在于,前面操作以時(shí)間為權(quán)重,這個(gè)是以某個(gè)條件為權(quán)重,比如按頂?shù)拇螖?shù)排序,這時(shí)候就需要我們的 sorted set 出馬了,將你要排序的值設(shè)置成 sorted set 的 score,將具體的數(shù)據(jù)設(shè)置成相應(yīng)的 value,每次只需要執(zhí)行一條 ZADD 命令即可。

3. 需要精準(zhǔn)設(shè)定過(guò)期時(shí)間的應(yīng)用

比如你可以把上面說(shuō)到的 sorted set 的 score 值設(shè)置成過(guò)期時(shí)間的時(shí)間戳,那么就可以簡(jiǎn)單地通過(guò)過(guò)期時(shí)間排序,定時(shí)清除過(guò)期數(shù)據(jù)了,不僅是清除 Redis 中的過(guò)期數(shù)據(jù),你完全可以把 Redis 里這個(gè)過(guò)期時(shí)間當(dāng)成是對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的索引,用 Redis 來(lái)找出哪些數(shù)據(jù)需要過(guò)期刪除,然后再精準(zhǔn)地從數(shù)據(jù)庫(kù)中刪除相應(yīng)的記錄。

4. 計(jì)數(shù)器應(yīng)用

Redis 的命令都是原子性的,你可以輕松地利用 INCR,DECR 命令來(lái)構(gòu)建計(jì)數(shù)器系統(tǒng)。

5.Uniq 操作,獲取某段時(shí)間所有數(shù)據(jù)排重值

這個(gè)使用 Redis 的 set 數(shù)據(jù)結(jié)構(gòu)最合適了,只需要不斷地將數(shù)據(jù)往 set 中扔就行了,set 意為集合,所以會(huì)自動(dòng)排重。

6. 實(shí)時(shí)系統(tǒng),反垃圾系統(tǒng)

通過(guò)上面說(shuō)到的 set 功能,你可以知道一個(gè)終端用戶是否進(jìn)行了某個(gè)操作,可以找到其操作的集合并進(jìn)行分析統(tǒng)計(jì)對(duì)比等。沒(méi)有做不到,只有想不到。

7.Pub/Sub 構(gòu)建實(shí)時(shí)消息系統(tǒng)

Redis 的 Pub/Sub 系統(tǒng)可以構(gòu)建實(shí)時(shí)的消息系統(tǒng),比如很多用 Pub/Sub 構(gòu)建的實(shí)時(shí)聊天系統(tǒng)的例子。

8. 構(gòu)建隊(duì)列系統(tǒng)

使用 list 可以構(gòu)建隊(duì)列系統(tǒng),使用 sorted set 甚至可以構(gòu)建有優(yōu)先級(jí)的隊(duì)列系統(tǒng)。

以上是“Redis 的應(yīng)用場(chǎng)景是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

向 AI 問(wèn)一下細(xì)節(jié)

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-12-16發(fā)表,共計(jì)1617字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 凤台县| 胶州市| 成都市| 罗江县| 彩票| 永和县| 咸丰县| 巴塘县| 米林县| 师宗县| 永登县| 河源市| 敖汉旗| 和平区| 凤山县| 锡林浩特市| 永登县| 莲花县| 兴隆县| 阳春市| 察雅县| 宜都市| 伊宁市| 绥阳县| 镇江市| 荆州市| 天峻县| 铁岭县| 新田县| 临洮县| 彰化市| 彭泽县| 青冈县| 婺源县| 永定县| 寿光市| 太谷县| 麻阳| 探索| 岳普湖县| 富源县|