91av免费观看_日韩视频在线免费看_日本xxxx色视频在线观看免费_伊人222综合网图片_国产二区三区在线_91麻豆麻豆

IT之道-艾銻知道

您當前位置: 主頁 > 資訊動態 > IT知識庫 >

it運維知識教您緩存的三種方式


2020-04-03 16:53 作者:艾銻無限 瀏覽量:


從打破雞蛋這個故事中我們能學到什么
 
大多數管理者的困境


 
 


 
 
作為一名專業的教練,我經常會被問到:

教練,我的團隊溝通不暢該怎么辦?

教練,我的團隊執行力不強要如何處理?

教練,我的團隊里沒有人才可用要如何做呢?

教練,我的團隊士氣很低怎樣激勵他們呢?

教練,我的團隊經常達不成目標能給些建議嗎?

教練,我的團隊沒有凝聚力有什么好的方法嗎?

教練,我的團隊沒有能量,我要怎么給他們賦能呢?
……
 
教練與企業管理者的對話:



 
 
 

每當這個時候,我都會問這些企業的負責人,
 
一個雞蛋如果從外給予壓力,最終會怎什么呢?

他們有的說,會形成碎雞蛋,也有人說,打破了可以做成炒雞蛋,還有人說,可以用雞蛋清敷在臉上做面膜,人類的想象力總是讓人出乎意料……

我又問到,
 
那如果從里面給到動力,最后破殼而出,又會發生什么呢?

 
 
 
 
所有人的回答幾乎都是一樣的,一只有著生命力的小雞.

我又問了一個問題,
 
我說假如你可以讓你的員工具備破殼而出的生命力,你覺得企業會發生什么呢?

他們說,那簡直太棒了,每個人都能自發地去做事,而且帶著激情和動力,整個企業一定朝氣蓬勃,充滿斗志,但是,教練,我怎么做才能讓他們具備這樣的生命力呢?
 
我說,這是一個好問題,你覺得母雞是怎么做的呢?

他們說,母雞每天都會坐在雞蛋上,哪都不去玩,全身心投入,給到雞蛋持續的關懷和溫度,并且堅持21天,直到小雞可以從蛋殼中走出來.


 
 

 
 
那母雞孵化小雞這個過程給到你什么啟發呢?
 
他們說,我也需要給到自己團隊這樣的關懷和支持,用心去孵化他們內在的動力,幫助他們釋放出潛能,為他們創造適合他們成長的環境和土壤,以及給予更多的陽光和水,我相信他們一定能由內而外的活出有能量的狀態,到那時無論什么困難和挑戰都會迎刃而解.
 
每個人都是自己生命中的天才

 

 
 
他們分享完我就直接鼓掌,我一直都認為,每個人都是自己生命中的天才,而且我也是這樣去踐行的,無論是多大的企業家,還是最普通的員工都可以活出自己內在的智慧,并且解決生命中的困境.

馬斯洛也曾說過類似的話,他說“人并不是被澆鑄或塑造成人的,而是依靠自身實現潛能的,環境對人的成長象土壤、陽光和水對于植物一樣,只能促進潛能的現實化。”
 
生命生長需要時間



 

無論是打破一個雞蛋,還是一花一世界,萬物皆具潛能,只是我們只盯在相上,只盯在結果上,卻沒有為結果投入更多的時間和耐心,即使我們今天看到的太陽的光芒,也不是今天太陽發出來的.

根據科學家的計算,從太陽發出光到地球需要8分20秒左右的時間,這就意味著,當我們生命中出現了至暗時刻,不用著急,也不用慌張,因為太陽光在路上,給它一點時間,至暗終會迎來光明.

以下文章由IT外包服務商北京艾銻無限科技發展公司整理
 

it運維知識教您緩存的三種方式
 
 
緩存是現在系統中必不可少的模塊,并且已經成為了高并發高性能架構的一個關鍵組件。現在我們來分析一下使用緩存的正確姿勢。

緩存能解決的問題

· 提升性能

絕大多數情況下,select 是出現性能問題最大的地方。一方面,select 會有很多像 join、group、order、like 等這樣豐富的語義,而這些語義是非常耗性能的;另一方面,大多 數應用都是讀多寫少,所以加劇了慢查詢的問題。

分布式系統中遠程調用也會耗很多性能,因為有網絡開銷,會導致整體的響應時間下降。為了挽救這樣的性能開銷,在業務允許的情況(不需要太實時的數據)下,使用緩存是非常必要的事情。

· 緩解數據庫壓力

當用戶請求增多時,數據庫的壓力將大大增加,通過緩存能夠大大降低數據庫的壓力。

緩存的適用場景

· 對于數據實時性要求不高

對于一些經常訪問但是很少改變的數據,讀明顯多于寫,適用緩存就很有必要。比如一些網站配置項。

· 對于性能要求高

比如一些秒殺活動場景。

緩存三種模式

一般來說,緩存有以下三種模式:

· Cache Aside 更新模式

· Read/Write Through 更新模式

· Write Behind Caching 更新模式

通俗一點來講就是,同時更新緩存和數據庫(Cache Aside 更新模式);先更新緩存,緩存負責同步更新數據庫(Read/Write Through 更新模式);先更新緩存,緩存定時異步更新數據庫(Write Behind Caching 更新模式)。這三種模式各有優劣,可以根據業務場景選擇使用。

Cache Aside 更新模式

這是最常用的緩存模式了,具體的流程是:

· 失效:應用程序先從 cache 取數據,沒有得到,則從數據庫中取數據,成功后,放到緩存中。

· 命中:應用程序從 cache 中取數據,取到后返回。

· 更新:先把數據存到數據庫中,成功后,再讓緩存失效

 

Cache Aside 更新模式流程圖

注意我們上面所提到的,緩存更新時先更新數據庫,然后在讓緩存失效。那么為什么不是直接更新緩存呢?這里有一些緩存更新的坑,我們需要避免入坑。
 
避坑指南一

先更新數據庫,再更新緩存。這種做法最大的問題就是兩個并發的寫操作導致臟數據。如下圖(以Redis和Mysql為例),兩個并發更新操作,數據庫先更新的反而后更新緩存,數據庫后更新的反而先更新緩存。這樣就會造成數據庫和緩存中的數據不一致,應用程序中讀取的都是臟數據。


 
 

 
兩個并發的寫操作導致臟數據
 
避坑指南二

先刪除緩存,再更新數據庫。這個邏輯是錯誤的,因為兩個并發的讀和寫操作導致臟數據。如下圖(以Redis和Mysql為例)。假設更新操作先刪除了緩存,此時正好有一個并發的讀操作,沒有命中緩存后從數據庫中取出老數據并且更新回緩存,這個時候更新操作也完成了數據庫更新。此時,數據庫和緩存中的數據不一致,應用程序中讀取的都是原來的數據(臟數據)。

 
 

 
兩個并發的讀和寫操作導致臟數據
 
避坑指南三

先更新數據庫,再刪除緩存。這種做法其實不能算是坑,在實際的系統中也推薦使用這種方式。但是這種方式理論上還是可能存在問題。如下圖(以Redis和Mysql為例),查詢操作沒有命中緩存,然后查詢出數據庫的老數據。此時有一個并發的更新操作,更新操作在讀操作之后更新了數據庫中的數據并且刪除了緩存中的數據。然而讀操作將從數據庫中讀取出的老數據更新回了緩存。這樣就會造成數據庫和緩存中的數據不一致,應用程序中讀取的都是原來的數據(臟數據)。

 
 


 
但是,仔細想一想,這種并發的概率極低。因為這個條件需要發生在讀緩存時緩存失效,而且有一個并發的寫操作。實際上數據庫的寫操作會比讀操作慢得多,而且還要加鎖,而讀操作必需在寫操作前進入數據庫操作,又要晚于寫操作更新緩存,所有這些條件都具備的概率并不大。但是為了避免這種極端情況造成臟數據所產生的影響,我們還是要為緩存設置過期時間。
 
Read/Write Through 更新模式


在上面的 Cache Aside 更新模式中,應用代碼需要維護兩個數據存儲,一個是緩存(Cache),一個是數據庫(Repository)。而在Read/Write Through 更新模式中,應用程序只需要維護緩存,數據庫的維護工作由緩存代理了。

 
 

 
Read Through

Read Through 模式就是在查詢操作中更新緩存,也就是說,當緩存失效的時候,Cache Aside 模式是由調用方負責把數據加載入緩存,而 Read Through 則用緩存服務自己來加載。

Write Through

Write Through 模式和 Read Through 相仿,不過是在更新數據時發生。當有數據更新的時候,如果沒有命中緩存,直接更新數據庫,然后返回。如果命中了緩存,則更新緩存,然后由緩存自己更新數據庫(這是一個同步操作)。

Write Behind Caching 更新模式

Write Behind Caching 更新模式就是在更新數據的時候,只更新緩存,不更新數據庫,而我們的緩存會異步地批量更新數據庫。這個設計的好處就是直接操作內存速度快。因為異步,Write Behind Caching 更新模式還可以合并對同一個數據的多次操作到數據庫,所以性能的提高是相當可觀的。

但其帶來的問題是,數據不是強一致性的,而且可能會丟失。另外,Write Behind Caching 更新模式實現邏輯比較復雜,因為它需要確認有哪些數據是被更新了的,哪些數據需要刷到持久層上。只有在緩存需要失效的時候,才會把它真正持久起來。

 
 

 
Write Behind Caching 更新模式

總結

三種緩存模式的優缺點:

Cache Aside 更新模式實現起來比較簡單,但是需要維護兩個數據存儲,一個是緩存(Cache),一個是數據庫(Repository)。

Read/Write Through 更新模式只需要維護一個數據存儲(緩存),但是實現起來要復雜一些。

Write Behind Caching 更新模式和Read/Write Through 更新模式類似,區別是Write Behind Caching 更新模式的數據持久化操作是異步的,但是Read/Write Through 更新模式的數據持久化操作是同步的。優點是直接操作內存速度快,多次操作可以合并持久化到數據庫。缺點是數據可能會丟失,例如系統斷電等。

緩存是通過犧牲強一致性來提高性能的。所以使用緩存提升性能,就是會有數據更新的延遲。這需要我們在設計時結合業務仔細思考是否適合用緩存。然后緩存一定要設置過期時間,這個時間太短太長都不好,太短的話請求可能會比較多的落到數據庫上,這也意味著失去了緩存的優勢。太長的話緩存中的臟數據會使系統長時間處于一個延遲的狀態,而且系統中長時間沒有人訪問的數據一直存在內存中不過期,浪費內存。

相關文章

IT外包服務
二維碼 關閉
主站蜘蛛池模板: 久久精品久久精品中文字幕 | 精品无码成人网站久久久久久 | 欧美性大战久久久久XXX | 在线精品小视频 | 亚洲色国产AV天堂 | 黄色羞羞网站 | 亚洲欧洲精品A片久久99 | 日韩精品无码一区二区三区不卡 | av无码天堂一区二区三区, | 麻豆蜜桃国产精品无码视频 | 黄色视频网站在线观看 | 欧美大香线蕉线伊人久久 | 久久精品人妻系列无码专区 | 国产成人无码一区二区在线观看 | 后进白嫩翘臀在线视频 | 色综合av在线 | 性按摩玩人妻HD中文字幕 | 中文字幕日产A片在线看 | 女人喷液抽搐高潮视频, | 专干日本老妇HD | 女兵的真人大毛片 | 激情航班h版在线观看 | 欧美99久久精品乱码影视 | 综合av| 999亚洲精品无码久久久久 | 2020年最新国产精品正在播放 | 无码国产精品人妻一区二区 | 曰欧一片内射vα在线影院 91嫩草久久久精品影院 | 国产一二三区免费视频 | 日本无遮挡色又黄的视频 | 国产精品区在线 | 在线中文字幕-区二区三区四区 | AV在线观看网站无码不卡的 | 涩涩视频在线观看 | 中文字幕免费在线 | 成人天堂资源www在线 | 艳妇乳肉豪妇荡乳 | 内射射满骚B含着小说 | 伊人久久大香线蕉AV波多野结衣 | GOGOGO免费高清看中国国语 | 中文日产幕无线码一区 |