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

在Redis中使用最多的就是集合了,舉個例子,如下場景:
1.簽到系統(tǒng)中,一天對應(yīng)一系列的用戶簽到記錄。
2.電商系統(tǒng)中,一個商品對應(yīng)一系列的評論。
3.交友系統(tǒng)中,某個用戶的一系列的好友。
Redis中集合的特點無非是一個Key對應(yīng)一系列的數(shù)據(jù), 但是數(shù)據(jù)的作用往往是為了統(tǒng)計的,比如:
1.交友系統(tǒng)中,需要統(tǒng)計每天的新增好友,以及雙方的共同好友。
2.電商系統(tǒng)中,需要統(tǒng)計評論列表中的最新評論。
3.簽到系統(tǒng)中,需要統(tǒng)計連續(xù)一個月的簽到的用戶數(shù)量。
大型互聯(lián)網(wǎng)應(yīng)用中,數(shù)據(jù)量是巨大的,少說百萬,千萬,甚至是一個億,比如電商巨頭淘寶,交友巨頭微信、微博;辦公巨頭釘釘?shù)龋囊粋€的用戶不是上億?
只有針對不同場景,選擇合適的集合,統(tǒng)計才能更方便。

【redis是什么】
redis是一個開源的、使用C語言編寫的、支持網(wǎng)絡(luò)交互的、可基于內(nèi)存也可持久化的Key-Value數(shù)據(jù)庫。
redis的官網(wǎng)地址,非常好記,是redis.io。(特意查了一下,域名后綴io屬于國家域名,是british Indian Ocean territory,即英屬印度洋領(lǐng)地)
目前,Vmware在自助者redis項目的開發(fā)和維護。

開門見山,先看照片:

是不是出乎了你的意料,嗯,高手總會有些地方與眾不同的。
這位便是redis的作者,他叫Salvatore Sanfilippo,來自意大利的西西里島,現(xiàn)在居住在卡塔尼亞。目前供職于Pivotal公司。
他使用的網(wǎng)名是antirez,如果你有興趣,可以去他的博客逛逛,地址是antirez.com,當(dāng)人也可以去follow他的github,地址是 http://github.com/antirez。

Redis是一種基于鍵值對的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甚至是二進制的圖片等數(shù)據(jù),但是最大值不能超過512MB。
1.1 內(nèi)部編碼
Redis會根據(jù)當(dāng)前值的類型和長度決定使用哪種內(nèi)部編碼來實現(xiàn)。
字符串類型的內(nèi)部編碼有3種:
1.int:8個字節(jié)的長整型。
2.embstr:小于等于39個字節(jié)的字符串。
3.raw:大于39個字節(jié)的字符串。
1.2 使用場景
1.2.1 緩存
在web服務(wù)中,使用MySQL作為數(shù)據(jù)庫,Redis作為緩存。由于Redis具有支撐高并發(fā)的特性,通常能起到加速讀寫和降低后端壓力的作用。web端的大多數(shù)請求都是從Redis中獲取的數(shù)據(jù),如果Redis中沒有需要的數(shù)據(jù),則會從MySQL中去獲取,并將獲取到的數(shù)據(jù)寫入redis。
1.2.2 計數(shù)
Redis中有一個字符串相關(guān)的命令incr key,incr命令對值做自增操作,返回結(jié)果分為以下三種情況:
值不是整數(shù),返回錯誤
值是整數(shù),返回自增后的結(jié)果
key不存在,默認(rèn)鍵為0,返回1
比如文章的閱讀量,視頻的播放量等等都會使用redis來計數(shù),每播放一次,對應(yīng)的播放量就會加1,同時將這些數(shù)據(jù)異步存儲到數(shù)據(jù)庫中達到持久化的目的。
1.2.3 共享Session
在分布式系統(tǒng)中,用戶的每次請求會訪問到不同的服務(wù)器,這就會導(dǎo)致session不同步的問題,假如一個用來獲取用戶信息的請求落在A服務(wù)器上,獲取到用戶信息后存入session。下一個請求落在B服務(wù)器上,想要從session中獲取用戶信息就不能正常獲取了,因為用戶信息的session在服務(wù)器A上,為了解決這個問題,使用redis集中管理這些session,將session存入redis,使用的時候直接從redis中獲取就可以了。
1.2.4 限速
為了安全考慮,有些網(wǎng)站會對IP進行限制,限制同一IP在一定時間內(nèi)訪問次數(shù)不能超過n次。

綜上所述就是Redis部分知識點,
什么?怎么樣才能知道更多的Redis的知識?
看視頻啊~視頻中有你想知道的
