久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

mysql - 請(qǐng)教一個(gè)Java做數(shù)據(jù)庫(kù)緩存的問題

瀏覽:141日期:2023-11-12 16:00:37

問題描述

現(xiàn)在在負(fù)責(zé)學(xué)校的一個(gè)圖書館個(gè)人寫作平臺(tái),基本的業(yè)務(wù)模型已經(jīng)完成了,但是項(xiàng)目在高并發(fā)環(huán)境下還沒有做任何的優(yōu)化。

每個(gè)學(xué)生在閱讀完一本書后都可以寫書評(píng)或者做筆記,書評(píng)是公開的,筆記是私有的。按照現(xiàn)在的做法每個(gè)學(xué)生操作都訪問數(shù)據(jù)庫(kù)去查詢,這樣以后肯定會(huì)有性能瓶頸。

我大概看了一下ehcache的相關(guān)教程但沒有一個(gè)好的解決方案,主要是無法判斷緩存是否失效。比如將高頻學(xué)生的一定數(shù)量筆記都放入到緩存中間去的話,如果設(shè)置一個(gè)特定的超時(shí)時(shí)間5min,但是如果剛好在這5min之內(nèi)又新添加或者修改了一篇筆記的話應(yīng)該怎么辦么?

比如在mybatis中對(duì)應(yīng)一條sql語(yǔ)句select * from comments condition,我可以通過ehcache建立一個(gè)內(nèi)存緩存,但是如果comments新添加或者更新了一條記錄,怎么能優(yōu)雅的更新上次在ehcache中添加的緩存。

各位網(wǎng)友是否能夠建議一下相關(guān)的解決方案?thanks :-)

問題解答

回答1:

既然是緩存,那就一定對(duì)數(shù)據(jù)實(shí)效性有容忍度,否則要嚴(yán)格實(shí)時(shí)的數(shù)據(jù),就只能訪問數(shù)據(jù)庫(kù)查詢了。

根據(jù)題主描述的業(yè)務(wù)場(chǎng)景來看,普遍的解決方案是通過外置索引來維護(hù)圖書和書評(píng)的關(guān)系(當(dāng)然索引也不是完全實(shí)時(shí)的),再通過kv緩存(redis,ehcache,map等等)來緩存書評(píng)的具體內(nèi)容。在數(shù)據(jù)更新(update)時(shí),通常情況先更新數(shù)據(jù)庫(kù),然后更新緩存,索引不需要更新。在數(shù)據(jù)更新(insert)時(shí),需要在update基礎(chǔ)上,再增加相應(yīng)的關(guān)系到索引中。

簡(jiǎn)單的外置索引,可以在數(shù)據(jù)庫(kù)中,增加一張(圖書-書評(píng))關(guān)系表,建好索引,在查詢書評(píng)時(shí)先查詢(分頁(yè)查詢)關(guān)系表,再通過書評(píng)主鍵,查詢具體書評(píng)信息(緩存加在單條書評(píng)信息上),建議分兩次查詢并在內(nèi)存中組裝數(shù)據(jù),不要使用連表查詢(影響數(shù)據(jù)庫(kù)性能)。關(guān)系表數(shù)據(jù)不需要建立緩存,只需要增加書評(píng)信息的緩存即可。

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 越西县| 古丈县| 定南县| 昆山市| 太白县| 根河市| 丰都县| 镇坪县| 封开县| 永丰县| 建瓯市| 繁昌县| 青铜峡市| 南江县| 图片| 舟山市| 临城县| 巴中市| 萝北县| 太仆寺旗| 县级市| 精河县| 南宁市| 江都市| 泊头市| 乳山市| 宁波市| 兴化市| 舟曲县| 安陆市| 东明县| 比如县| 孟津县| 金堂县| 凤山市| 根河市| 奎屯市| 洛阳市| 焉耆| 和龙市| 且末县|