雖然我很渺小,但我還想分享
有需要csdn下載需求的同學,評論關注回覆我咋都可以,***免費給大家下載***⚽
有需要阿里雲Linux服務器練手的同學,評論關注回覆我咋都可以,***免費給大家分享***⚽,只要不刪庫跑路就好😂
我堅信愛分享的人運氣一定不差,進步很快樂,分享更快樂😬
這有你們想要聽的故事!
- 經理 : 兄弟,我有一個新需求,需要做一個整點搶購活動的功能,這次客戶的產品到時候可是併發萬級的流量,好好想想吧!
- 本狗 : 這有啥難得,給個設計一個到時搶購時間,然後在搶購處加入鎖,完活,走你。
- 經理 : 來來來!兄弟,這數據庫內存咋佔用這麼多,而且還有時候卡住,好像抵擋不住這百萬級的點擊量啊,怎麼回事啊,是不是代碼有問題啊!
- 本狗 : …(mmp,被發現了😂)神馬啊!這併發量太大了,你這服務器不行,而且網不好,刷新下就好了,不行就重啓,再不行就把數據庫讀寫分離,分庫分表…
- 經理 : 別說這沒有用的,人家萌妹子寫的咋沒問題,到你這又這個那個了,就沒個能夠讀寫抵擋萬併發的工具。能幹幹,不能幹滾蛋!
- 本狗 : …(內心一萬隻草泥馬) …竟無語凝噎,菜雞被啄🐦
So :當高併發且數據量龐大的時候,讀取硬盤的數據庫操作遠遠不滿足現實需求,所以redis來了。
叨叨這麼多,redis是啥玩意。我相信代碼源於生活,生活中的栗子🌰,才更容易理解。客觀留步慢慢往下看!
假如你下定決心要大掃除,秉着一腔熱血自己開幹。面對這無數的垃圾裏,你感到無助想到退卻,忽然在角落裏發現了一個智能掃地機器人,於是乎關於你們的故事開始了。
- 滿屋的垃圾 = 併發幾萬級的流量數據
- 自己掃 = 關係型數據庫
- 掃地機器人 = 分佈式緩存數據庫,在這裏指redis
🗑️屋裏的垃圾 ,就是我們要處理併發的大量數據;
🖌️自己拿着掃帚,就是將數據存貯在數據庫硬盤中;
🤖掃地機器人,就是redis。
1.如果你覺得自己勤快,選擇親力親爲自己掃,雖然節省電費,但是費時費力,巨大的消耗導致最終人累倒。
➡️ 這種情況是當數據量併發量巨大且不需要保證其完全準確性時,如果採用關係型數據庫(如mysql)進行交互,讀寫佔用巨大資源,導致瓶頸後影響性能,嚴重者導致宕機。
2. 如果你是個比較愛偷懶的,選擇完全使用掃地機器人。這雖然會節省自己的體力,而且工作效率高,但是電費昂貴,而且掃地機器人總用掃滿的時候,就會導致機器停工。
➡️ 這種情況是完全把數據持久化壓力交給redis,但是redis是分佈式內存數據庫,如果過度依賴內存,那麼花費開銷十分巨大,隨性能提升,但是也不能不計成本。
3. 如果你是個喜歡合作的人,採用和掃地機器人一同協作,讓機器人幫你搞定大量垃圾,然後把需要整理重要的垃圾交由你來處理。於是乎你和掃地機器人快樂的合作起來,掃了一屋也掃了天下。
➡️ 這種情況則是最佳方案,使用redis進行大數據高併發的抵擋,然後將需要持久化保存的數據交由關係型數據庫,達到互補,提高性能。
故事聽完了,開始我們的表演吧!
1. 什麼是redis?
行話
Redis:REmoteDIctionaryServer(遠程字典服務器)是完全開源免費的,用語言編寫的,遵守BSD協議,是一個高性能的(key/value)分佈式內存數據庫,基於內存行並支持持久化的NoSQL數據庫,是當前最熱門的NoSql數據之一,也被人們稱爲數據結構服務器。
土味情話
我片面的認爲redis就是擋在數據庫之前的盾牌,數據庫的sql操作會進行磁盤讀寫,併發量最高也就幾萬條每秒,一般可滿足需求。但如果類似支付寶春晚紅包,或者京東搶購之類的高併發,就像mysql,oracle之類的也會有性能瓶頸,超過億萬級併發那就只能over等死了。redis是會將數據保存在內存中也會定期存儲到硬盤,速度快的嗖嗖的。所以當這些高併發的時候就需要redis抵擋一層,分散數據庫壓力,並且高效快捷。
2. redis用在哪?
- 會話緩存(最常用)
- 消息隊列,
- 活動排行榜或計數
- 發佈,訂閱消息(消息通知)
- 商品列表,評論列表等
3.redis去哪下?
官網在此,誰敢造次
https://redis.io/
4.redis掌握目標?
- 數據類型、基本操作和配置
- 持久化和複製,RDB/AOF
- 事務的控制
🔥 下章劇透,redis的下載與安裝
此章到這裏啦,我是JavaDog,謝謝博友看完了,點個贊👍再走唄。