偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

關(guān)于軟件設(shè)計中緩存的那些事兒

開發(fā)
緩存就是硬件或者軟件直接存取數(shù)據(jù),而不是從原始源(數(shù)據(jù)庫,計算等)存取數(shù)據(jù),它會加快數(shù)據(jù)的讀取。

?緩存可以說是最簡單也最復(fù)雜的一個概念,用好它你可以讓你的應(yīng)用飛起,不會用它,即使再高的配置,你的應(yīng)用也難以發(fā)揮最佳效果。

什么是緩存

緩存就是硬件或者軟件直接存取數(shù)據(jù),而不是從原始源(數(shù)據(jù)庫,計算等)存取數(shù)據(jù),它會加快數(shù)據(jù)的讀取。

內(nèi)存緩存是我們經(jīng)常使用的緩存技術(shù),通過將常用的數(shù)據(jù)保存到內(nèi)存中,我們就可以避免從數(shù)據(jù)庫中讀取數(shù)據(jù),這會大大提升應(yīng)用的加載速度,提升用戶體驗。

什么時候使用緩存

  • 當我們需要請求外部資源的時候,比如第三方 api,我們希望緩存請求的結(jié)果
  • 當請求的數(shù)據(jù)發(fā)生變化的時候,我們可以緩存返回結(jié)果
  • 當應(yīng)用需要頻繁地請求同一個資源的時候
  • 當應(yīng)用需要運行一些復(fù)雜的計算機的時候
  • 當應(yīng)用查詢耗時的時候

緩存的好處

  • 提升應(yīng)用的性能
  • 減少數(shù)據(jù)庫的開銷
  • 增加并發(fā)

緩存的類型

  • 應(yīng)用緩存
  • 數(shù)據(jù)庫緩存
  • DNS 緩存
  • 客戶端緩存
  • CDN 緩存
  • API 網(wǎng)關(guān)緩存

分布式緩存

分布式緩存由一個服務(wù)端實現(xiàn)管理和控制,有多個客戶端節(jié)點存儲數(shù)據(jù),可以進一步提高數(shù)據(jù)的讀取速率。那么我們要讀取某個數(shù)據(jù)的時候,應(yīng)該選擇哪個節(jié)點呢?如果挨個節(jié)點找,那效率就太低了。因此需要根據(jù)一致性哈希算法確定數(shù)據(jù)的存儲和讀取節(jié)點。以數(shù)據(jù) D,節(jié)點總個數(shù) N 為基礎(chǔ),通過一致性哈希算法計算出數(shù)據(jù) D 對應(yīng)的哈希值(相當于門牌號),根據(jù)這個哈希值就可以找到對應(yīng)的節(jié)點了。一致哈希算法的好處在于節(jié)點個數(shù)發(fā)生變化(減少或增加)時無需重新計算哈希值,保證數(shù)據(jù)儲存或讀取時可以正確、快速地找到對應(yīng)的節(jié)點。

關(guān)于軟件設(shè)計中緩存的那些事兒

分布式緩存能夠高性能地讀取數(shù)據(jù)、能夠動態(tài)地擴展緩存節(jié)點、能夠自動發(fā)現(xiàn)和切換故障節(jié)點、能夠自動均衡數(shù)據(jù)分區(qū),而且能夠為使用者提供圖形化的管理界面,部署和維護都十分方便。

緩存策略

(1) Cache-Aside

先讀取緩存,如果緩存失效,那么讀取數(shù)據(jù)庫獲取數(shù)據(jù),然后將數(shù)據(jù)設(shè)置到緩存里面。

關(guān)于軟件設(shè)計中緩存的那些事兒

(2) Read Through

應(yīng)用只從緩存取數(shù)據(jù),如果沒有取到,那么緩存會從數(shù)據(jù)庫獲取數(shù)據(jù),然后設(shè)置緩存,最后應(yīng)用從緩存繼續(xù)讀取數(shù)據(jù)。

關(guān)于軟件設(shè)計中緩存的那些事兒

(3) Write Through

應(yīng)用保存數(shù)據(jù)的時候,都是先保存到緩存里面,緩存會將數(shù)據(jù)再保存到數(shù)據(jù)庫,應(yīng)用不直接和數(shù)據(jù)庫打交道,只是保存數(shù)據(jù)到緩存。

關(guān)于軟件設(shè)計中緩存的那些事兒

(44) Write Back or Write Behind

應(yīng)用程序?qū)?shù)據(jù)寫入緩存,然后會發(fā)送確認返回給應(yīng)用,然后緩存寫入數(shù)據(jù)庫。

關(guān)于軟件設(shè)計中緩存的那些事兒

(5) Write Around

應(yīng)用數(shù)據(jù)直接寫入數(shù)據(jù)庫,從而讀取數(shù)據(jù)從緩存中獲取。

關(guān)于軟件設(shè)計中緩存的那些事兒

總結(jié)

曾經(jīng)有個偉人說過,所有我們目前解決不了的計算機問題,都可以通過添加一個中間層來解決,而緩存就是一個中間層,有了這個中間層,我們的應(yīng)用性能得到了極大提升,但緩存不是萬能的,它也有它的弊端,只有合理的使用它,我們才能發(fā)揮它的最大價值。

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2017-04-12 12:31:14

緩存Web瀏覽器

2022-08-04 10:18:32

棧遷移?寄存器內(nèi)存

2021-03-18 09:01:53

軟件開發(fā)軟件選型

2022-06-02 08:42:15

Redis數(shù)據(jù)庫

2012-03-12 13:55:22

交互設(shè)計

2012-11-28 10:54:37

禁止追蹤DNT

2020-09-22 14:29:24

智能

2017-03-31 09:24:53

AR現(xiàn)實游戲

2022-05-25 08:27:30

tmux軟件

2013-06-13 11:29:14

分布式分布式緩存

2012-07-19 15:30:00

Linux

2014-04-30 12:18:07

軟件設(shè)計

2011-09-16 10:05:48

Android應(yīng)用Nightclub S夜店

2012-04-27 10:06:15

2022-06-04 11:12:12

RPCREST協(xié)議

2014-03-12 09:23:06

DevOps團隊合作

2020-05-06 16:47:08

線程安全Python數(shù)據(jù)安全

2018-03-01 15:34:20

數(shù)據(jù)科學(xué)面試招聘

2020-05-07 10:05:52

Python數(shù)據(jù)安全

2011-02-16 09:57:41

點贊
收藏

51CTO技術(shù)棧公眾號