最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

你了解Redis嗎?

2021-04-16 15:59 作者:編程大戰(zhàn)  | 我要投稿

不知你大規(guī)模的用過Redis嗎?還是僅僅作為緩存的工具了?

在Redis中使用最多的就是集合了,舉個(gè)例子,如下場景:

  1. 簽到系統(tǒng)中,一天對(duì)應(yīng)一系列的用戶簽到記錄。

  2. 電商系統(tǒng)中,一個(gè)商品對(duì)應(yīng)一系列的評(píng)論。

  3. 交友系統(tǒng)中,某個(gè)用戶的一系列的好友。

Redis中集合的特點(diǎn)無非是一個(gè)Key對(duì)應(yīng)一系列的數(shù)據(jù), 但是數(shù)據(jù)的作用往往是為了統(tǒng)計(jì)的,比如:

  1. 交友系統(tǒng)中,需要統(tǒng)計(jì)每天的新增好友,以及雙方的共同好友。

  2. 電商系統(tǒng)中,需要統(tǒng)計(jì)評(píng)論列表中的最新評(píng)論。

  3. 簽到系統(tǒng)中,需要統(tǒng)計(jì)連續(xù)一個(gè)月的簽到的用戶數(shù)量。

大型互聯(lián)網(wǎng)應(yīng)用中,數(shù)據(jù)量是巨大的,少說百萬,千萬,甚至是一個(gè)億,比如電商巨頭淘寶,交友巨頭微信、微博;辦公巨頭釘釘?shù)?,哪一個(gè)的用戶不是上億?


只有針對(duì)不同場景,選擇合適的集合,統(tǒng)計(jì)才能更方便。

【redis是什么】

redis是一個(gè)開源的、使用C語言編寫的、支持網(wǎng)絡(luò)交互的、可基于內(nèi)存也可持久化的Key-Value數(shù)據(jù)庫。

redis的官網(wǎng)地址,非常好記,是redis.io。(特意查了一下,域名后綴io屬于國家域名,是british Indian Ocean territory,即英屬印度洋領(lǐng)地)

目前,Vmware在資助著redis項(xiàng)目的開發(fā)和維護(hù)。

開門見山,先看照片:

是不是出乎了你的意料,嗯,高手總會(huì)有些地方與眾不同的。

這位便是redis的作者,他叫Salvatore Sanfilippo,來自意大利的西西里島,現(xiàn)在居住在卡塔尼亞。目前供職于Pivotal公司。

他使用的網(wǎng)名是antirez,如果你有興趣,可以去他的博客逛逛,地址是antirez.com,當(dāng)然也可以去follow他的github,地址是http://github.com/antirez。


Redis是一種基于鍵值對(duì)的NoSQL數(shù)據(jù)庫,它的值主要由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)五種基本數(shù)據(jù)結(jié)構(gòu)構(gòu)成,除此之外還支持一些其他的數(shù)據(jù)結(jié)構(gòu)和算法。key都是由字符串構(gòu)成的,那么這五種數(shù)據(jù)結(jié)構(gòu)的使用場景有哪些?一起來看看!

字符串類型是Redis最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),字符串類型可以是JSON、XML甚至是二進(jìn)制的圖片等數(shù)據(jù),但是最大值不能超過512MB。

1.1 內(nèi)部編碼

Redis會(huì)根據(jù)當(dāng)前值的類型和長度決定使用哪種內(nèi)部編碼來實(shí)現(xiàn)。

字符串類型的內(nèi)部編碼有3種:

  1. int:8個(gè)字節(jié)的長整型。

  2. embstr:小于等于39個(gè)字節(jié)的字符串。

  3. raw:大于39個(gè)字節(jié)的字符串。

1.2 使用場景

1.2.1 緩存

在web服務(wù)中,使用MySQL作為數(shù)據(jù)庫,Redis作為緩存。由于Redis具有支撐高并發(fā)的特性,通常能起到加速讀寫和降低后端壓力的作用。web端的大多數(shù)請(qǐng)求都是從Redis中獲取的數(shù)據(jù),如果Redis中沒有需要的數(shù)據(jù),則會(huì)從MySQL中去獲取,并將獲取到的數(shù)據(jù)寫入redis。

1.2.2 計(jì)數(shù)

Redis中有一個(gè)字符串相關(guān)的命令incr key,incr命令對(duì)值做自增操作,返回結(jié)果分為以下三種情況:

  • 值不是整數(shù),返回錯(cuò)誤

  • 值是整數(shù),返回自增后的結(jié)果

  • key不存在,默認(rèn)鍵為0,返回1

比如文章的閱讀量,視頻的播放量等等都會(huì)使用redis來計(jì)數(shù),每播放一次,對(duì)應(yīng)的播放量就會(huì)加1,同時(shí)將這些數(shù)據(jù)異步存儲(chǔ)到數(shù)據(jù)庫中達(dá)到持久化的目的。

1.2.3 共享Session

在分布式系統(tǒng)中,用戶的每次請(qǐng)求會(huì)訪問到不同的服務(wù)器,這就會(huì)導(dǎo)致session不同步的問題,假如一個(gè)用來獲取用戶信息的請(qǐng)求落在A服務(wù)器上,獲取到用戶信息后存入session。下一個(gè)請(qǐng)求落在B服務(wù)器上,想要從session中獲取用戶信息就不能正常獲取了,因?yàn)橛脩粜畔⒌膕ession在服務(wù)器A上,為了解決這個(gè)問題,使用redis集中管理這些session,將session存入redis,使用的時(shí)候直接從redis中獲取就可以了。

1.2.4 限速

為了安全考慮,有些網(wǎng)站會(huì)對(duì)IP進(jìn)行限制,限制同一IP在一定時(shí)間內(nèi)訪問次數(shù)不能超過n次。

綜上所述就是Redis部分知識(shí)點(diǎn),

什么?怎么樣才能知道更多的Redis的知識(shí)?

看視頻啊~視頻中有你想知道的


你了解Redis嗎?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
仙游县| 凯里市| 五常市| 青川县| 榆林市| 象州县| 苏尼特左旗| 宁都县| 抚顺市| 曲阳县| 高尔夫| 永善县| 嘉祥县| 象州县| 西吉县| 张家界市| 健康| 工布江达县| 乡城县| 岫岩| 南召县| 资兴市| 许昌市| 光泽县| 时尚| 丰城市| 昭通市| 六枝特区| 温州市| 都江堰市| 苏尼特左旗| 丹江口市| 淅川县| 封丘县| 阿拉善左旗| 长宁区| 洛阳市| 满城县| 涟水县| 义马市| 牡丹江市|