Redis基本知識(shí)及數(shù)據(jù)一致性問題

在了解Redis之前,首先給自己提幾個(gè)疑問:我們得知道Redis是用來(lái)做什么的拄查?在什么時(shí)候能使用到菇怀?它得優(yōu)勢(shì)在什么地方?使用它又需要注意什么咽筋?接下來(lái)我們帶著心中得疑問一步一步共同學(xué)習(xí)下溶推。

簡(jiǎn)介

Redis(Remote Dictionary Server ),即遠(yuǎn)程字典服務(wù)奸攻,是一個(gè)開源的使用ANSIC語(yǔ)言編寫蒜危、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型睹耐、Key-Value數(shù)據(jù)庫(kù)辐赞,并提供多種語(yǔ)言的API。從2010年3月15日起硝训,Redis的開發(fā)工作由VMware主持响委。從2013年5月開始,Redis的開發(fā)由Pivotal贊助窖梁。

Redis數(shù)據(jù)類型

String(字符串):Redis最基本的數(shù)據(jù)類型赘风,一個(gè)鍵對(duì)應(yīng)一個(gè)值,一個(gè)鍵值最大存儲(chǔ)512MB

Hash(哈希):hash是一個(gè)鍵值對(duì)的集合窄绒,是一個(gè)String類型的field和value的映射表贝次,適合用于存儲(chǔ)對(duì)象

?List(列表):是redis的簡(jiǎn)單的字符串列表,按插入順序排序

?Set(集合):是String字符串類型的無(wú)序集合彰导,也不可重復(fù)

?ZSet(sorted? set? 有序集合)是String類型的有序集合蛔翅,也不可重復(fù)。有序集合中的每個(gè)元素都需要指定一個(gè)分?jǐn)?shù)位谋,根據(jù)分?jǐn)?shù)對(duì)元素進(jìn)行升序排序山析。

1.Redis是用來(lái)做什么的

緩存,內(nèi)存作為數(shù)據(jù)存儲(chǔ)介質(zhì)掏父,讀寫數(shù)據(jù)的效率極高笋轨,可設(shè)置持久化

消息通知(發(fā)布-訂閱),是進(jìn)程中的一種消息通信模式,發(fā)送者pub發(fā)送消息爵政,訂閱者sub接收消息仅讽,一對(duì)一相當(dāng)于私聊,一對(duì)多相當(dāng)于群聊

高速隊(duì)列

2.什么時(shí)候能用到

2.1 緩存

高并發(fā)的數(shù)據(jù)钾挟,可以放入Redis緩存

頻繁訪問且變動(dòng)較小的數(shù)據(jù)可以放入Redis緩存洁灵,減少db的io

分布式中可以用來(lái)緩存會(huì)話

排行版

購(gòu)物車

...

2.2 發(fā)布-訂閱

應(yīng)用中聊天,消息交流

支付完成后掺出,等待服務(wù)器通知支付結(jié)果

實(shí)時(shí)公告或通知

....? ?

PS:如果數(shù)據(jù)量大徽千,可以去看看Kafka

2.3 隊(duì)列

支付系統(tǒng),大量的下單汤锨,可以放入隊(duì)列用于緩沖

注冊(cè)双抽、登錄等待 發(fā)送短信

...

PS:量大可以使用RabbitMQ

3.Redis優(yōu)點(diǎn)

1.基于內(nèi)存,數(shù)據(jù)讀寫速度快闲礼,性能高

2.支持持久化存儲(chǔ)

3.支持多種數(shù)據(jù)類型

4.豐富特性:過(guò)期策略牍汹,事務(wù),支持多db

4.數(shù)據(jù)一致性問題

這里主要討論下Redis作為緩存時(shí)數(shù)據(jù)一致性問題

在數(shù)據(jù)量不大的情況下位仁,一般采用先訪問Redis柑贞,如果Redis中不存在訪問的數(shù)據(jù),則去Db中查詢聂抢,把查詢的結(jié)果緩存到Redis,當(dāng)有新數(shù)據(jù)來(lái)就直接寫入Db

如果高并發(fā)的情況下

4.1 先更新Redis棠众,Reids更新成功后琳疏,在更新Db

1) Redis寫入成功,后續(xù)得Db寫入由于某種原因更新失敗闸拿,出現(xiàn)數(shù)據(jù)不一致

4.2 更新Db空盼,刪除Redis緩存

1) 當(dāng)高并發(fā)得情況下,很可能在更新Db動(dòng)作沒完成時(shí)候出現(xiàn)一次新得查詢請(qǐng)求

解決方案:

讀取數(shù)據(jù)時(shí)新荤,如果Redis中數(shù)據(jù)不存在揽趾,則去Db查詢,更新緩存苛骨,但新得數(shù)據(jù)來(lái)得時(shí)候篱瞎,我們先更新Db,如果Db數(shù)據(jù)更新成功痒芝,此時(shí)則讓Redis緩存失效(或者刪除對(duì)應(yīng)Redis緩存)俐筋,達(dá)到同步得效果,如果Db更新失敗 則無(wú)需更新Redis严衬。此時(shí)有朋友肯定會(huì)想澄者,如果緩存失效(或者刪除對(duì)應(yīng)Redis緩存)沒成功怎么辦,這是一個(gè)疑問,在網(wǎng)上看到有人提出了粱挡,重試機(jī)制赠幕,誒,這個(gè)很可以询筏,方案中再加入策略

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末劣坊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子屈留,更是在濱河造成了極大的恐慌局冰,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灌危,死亡現(xiàn)場(chǎng)離奇詭異康二,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)勇蝙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門沫勿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人味混,你說(shuō)我怎么就攤上這事产雹。” “怎么了翁锡?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵蔓挖,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我馆衔,道長(zhǎng)瘟判,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任角溃,我火速辦了婚禮拷获,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘减细。我一直安慰自己匆瓜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布未蝌。 她就那樣靜靜地躺著驮吱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪树埠。 梳的紋絲不亂的頭發(fā)上糠馆,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音怎憋,去河邊找鬼又碌。 笑死九昧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的毕匀。 我是一名探鬼主播铸鹰,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼皂岔!你這毒婦竟也來(lái)了蹋笼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤躁垛,失蹤者是張志新(化名)和其女友劉穎剖毯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體教馆,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逊谋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了土铺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胶滋。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖悲敷,靈堂內(nèi)的尸體忽然破棺而出究恤,到底是詐尸還是另有隱情,我是刑警寧澤后德,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布部宿,位于F島的核電站,受9級(jí)特大地震影響探遵,放射性物質(zhì)發(fā)生泄漏窟赏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一箱季、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧棍掐,春花似錦藏雏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至粟誓,卻和暖如春奏寨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鹰服。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工病瞳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留揽咕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓套菜,卻偏偏與公主長(zhǎng)得像亲善,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逗柴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容