成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

架構(gòu):緩存設(shè)計(jì) 你懂嗎?

存儲(chǔ) 存儲(chǔ)軟件
緩存在架構(gòu)設(shè)計(jì)中占有重要地位。緩存在提升性能中也扮演重要的角色。常見的有對(duì)資源的緩存,比如數(shù)據(jù)庫連接池、http連接池,還有對(duì)數(shù)據(jù)的緩存等。緩存的設(shè)計(jì)可復(fù)雜也可簡單,但是需要考慮的點(diǎn)卻很多。

 緩存在架構(gòu)設(shè)計(jì)中占有重要地位。緩存在提升性能中也扮演重要的角色。常見的有對(duì)資源的緩存,比如數(shù)據(jù)庫連接池、http連接池,還有對(duì)數(shù)據(jù)的緩存等。緩存的設(shè)計(jì)可復(fù)雜也可簡單,但是需要考慮的點(diǎn)卻很多。

[[285190]]

緩存對(duì)象

設(shè)計(jì)緩存的時(shí)候一定要考慮的是,緩存的對(duì)象是什么,緩存哪些對(duì)象。緩存對(duì)象一定是熱數(shù)據(jù),也就是頻繁被訪問。把對(duì)象加載到內(nèi)存是以犧牲內(nèi)存為代價(jià)的,如果緩存的對(duì)象不經(jīng)常訪問,那么就是在浪費(fèi)內(nèi)存,并且不但不會(huì)提升性能,還會(huì)因?yàn)槊新实偷脑蚪档托阅堋?/p>

緩存的大小

因?yàn)閮?nèi)存是有限的,所以緩存不能無限大,那么就要決定緩存多少數(shù)據(jù)以保證內(nèi)存不被撐爆。

緩存一致性

緩存一致性是必須要考慮的點(diǎn)。很多緩存設(shè)計(jì)都忘記了這一點(diǎn),導(dǎo)致在使用緩存的時(shí)候經(jīng)常返回過期數(shù)據(jù)。數(shù)據(jù)在更新的時(shí)候,緩存可以采用如下幾個(gè)策略:1.將緩存中的數(shù)據(jù)設(shè)置為無效或者刪除,再次查詢的時(shí)候重新去數(shù)據(jù)庫查詢并更新緩存;2.更新數(shù)據(jù)時(shí),先更新緩存,再更新數(shù)據(jù)庫或者先更新緩存之后異步刷新到數(shù)據(jù)庫;3.直接更新數(shù)據(jù)庫,緩存定期去數(shù)據(jù)庫同步最新數(shù)據(jù),這種方式需要容忍一定時(shí)間內(nèi)的不一致。緩存刷新策略一定要明確。作者本人在工作中遇到過這種情況:更新數(shù)據(jù)的接口有兩個(gè),其中一個(gè)更新緩存后更新數(shù)據(jù)庫,另一個(gè)直接去更新的數(shù)據(jù)庫,由于沒有同步機(jī)制,導(dǎo)致總是偶現(xiàn)數(shù)據(jù)不一致的情況,而且只能重啟來規(guī)避。

緩存在哪里

對(duì)于緩存數(shù)據(jù)的存儲(chǔ)位置也是需要考慮的。如果是分布式系統(tǒng)或者近期會(huì)重構(gòu)成分布式的系統(tǒng),緩存需要集中存儲(chǔ),比如使用redis做緩存。如果是單機(jī)系統(tǒng),最簡單的方式就是緩存到內(nèi)存中。緩存的存儲(chǔ)位置的訪問一定要快于數(shù)據(jù)的存儲(chǔ)位置,不然緩存就沒有意義了。

緩存流程

 

架構(gòu):緩存設(shè)計(jì)

 

緩存流程

經(jīng)典緩存問題

1.緩存穿透

緩存穿透是指客戶端訪問即不在緩存中的數(shù)據(jù)又不在數(shù)據(jù)庫中的數(shù)據(jù)。這種訪問過多會(huì)導(dǎo)致數(shù)據(jù)庫掛掉影響正常訪問。對(duì)于這種問題,可以在數(shù)據(jù)訪問前做校驗(yàn),過濾掉不存在的數(shù)據(jù)訪問,必須不合法的查詢字段或者使用布隆過濾器,篩選掉不存在的數(shù)據(jù);也可以將不存在的數(shù)據(jù)在緩存中建立空值緩存。

2.緩存擊穿

緩存擊穿是指客戶端訪問不在緩存中但數(shù)據(jù)庫中存在的數(shù)據(jù)。如果對(duì)某個(gè)key的訪問量很大,這個(gè)時(shí)候緩存過期了,那么就會(huì)有很多的訪問漏到數(shù)據(jù)庫層面去訪問數(shù)據(jù)。這個(gè)問題可以采用如下方法解決:熱點(diǎn)數(shù)據(jù)常駐緩存;訪問在緩存中沒有拿到數(shù)據(jù),在需要去數(shù)據(jù)庫中訪問數(shù)據(jù)時(shí)加鎖處理,只漏過一個(gè)訪問去數(shù)據(jù)庫查詢數(shù)據(jù),并將數(shù)據(jù)更新到緩存,其他訪問加鎖失敗,后續(xù)從緩存中取數(shù)據(jù)。

3.緩存雪崩

緩存雪崩是指大量的key過期,導(dǎo)致訪問落到數(shù)據(jù)庫上。這個(gè)問題的解決方法如下:1.每個(gè)緩存數(shù)據(jù)設(shè)置不同的緩存時(shí)間,避免大量的緩存同時(shí)過期;2.添加的節(jié)點(diǎn)預(yù)熱。在需要添加緩存節(jié)點(diǎn)的時(shí)候,先做緩存預(yù)熱,避免大量訪問未命中的情況;3.對(duì)于熱點(diǎn)數(shù)據(jù)的判斷采用延遲的策略。在訪問緩存中不存在的數(shù)據(jù)的時(shí)候,不直接將它設(shè)置成最熱數(shù)據(jù),而是設(shè)置到緩存數(shù)據(jù)按熱度排序中間的位置,避免某一時(shí)刻大量訪問冷數(shù)據(jù)導(dǎo)致熱數(shù)據(jù)被剔除緩存的情況。

建議

不建議在架構(gòu)設(shè)計(jì)的最初階段就采用緩存。首先,采用緩存容易掩蓋一些問題,比如業(yè)務(wù)邏輯導(dǎo)致的性能低下在由于緩存的存在在初期不容易暴露;再有就是在最初階段有的時(shí)候很難去判斷什么是熱數(shù)據(jù)什么是冷數(shù)據(jù),需要緩存什么;如果已經(jīng)確定要在系統(tǒng)中引入緩存那么一定要考慮好上面的幾點(diǎn)。

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

2023-12-04 07:25:20

軟件架構(gòu)

2021-04-12 06:00:01

MongoDB數(shù)據(jù)庫存儲(chǔ)

2022-10-08 00:04:00

緩存架構(gòu)限流

2011-06-14 10:57:31

SQL Server管理

2022-06-21 09:53:03

FedoraUbuntuLinux

2019-11-28 10:45:28

ZooKeeper源碼分布式

2021-03-30 09:59:52

支付寶加密數(shù)據(jù)泄露

2019-11-13 23:33:16

工業(yè)物聯(lián)網(wǎng)IIOT物聯(lián)網(wǎng)

2019-07-24 10:11:51

jdkjreJava

2016-12-05 08:46:07

緩存架構(gòu)設(shè)計(jì)

2019-11-19 08:47:45

Zookeeper分布式事務(wù)

2022-11-11 17:09:55

微服務(wù)RPC

2023-03-10 07:22:40

2018-05-10 09:06:24

2020-09-10 14:33:18

計(jì)算機(jī)

2023-07-09 15:20:00

緩存平衡性能

2013-07-15 13:36:29

架構(gòu)設(shè)計(jì)

2013-07-24 10:49:04

架構(gòu)設(shè)計(jì)師商業(yè)價(jià)值

2023-01-11 09:01:00

集群小文件存儲(chǔ)

2014-06-24 10:24:53

程序員笑話
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 一区二区三区成人 | 欧美视频一区二区三区 | 精品国产欧美一区二区 | 91人人在线 | 日韩在线小视频 | 国产精品久久久久久久久久久久久 | www久久久 | 91av免费观看 | 国产精品久久久久久亚洲调教 | 午夜日韩 | 亚洲综合区 | 亚洲精品乱码久久久久久蜜桃 | 99热热99| 午夜免费网站 | 欧美不卡一区二区三区 | 亚洲成人精品 | av中文在线 | 亚洲人成人一区二区在线观看 | 国产精品久久一区二区三区 | 日本精品一区二区三区在线观看视频 | 人人九九精| 国产成人99久久亚洲综合精品 | 国产亚洲精品成人av久久ww | 亚洲欧美国产一区二区三区 | 日日天天 | 中文字幕亚洲无线 | 97视频人人澡人人爽 | 日本精品一区二区 | 国产精品一区三区 | m豆传媒在线链接观看 | japanhdxxxx裸体| 日韩在线小视频 | 天天拍夜夜爽 | 亚洲一区二区三区视频免费观看 | 天天看天天爽 | 国产精品九九九 | 欧美美女爱爱视频 | 久久久.com| 国产a爽一区二区久久久 | 久久久久久久久久毛片 | 韩日在线 |