av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

mysql - 請教一個Java做數據庫緩存的問題

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

問題描述

現在在負責學校的一個圖書館個人寫作平臺,基本的業務模型已經完成了,但是項目在高并發環境下還沒有做任何的優化。

每個學生在閱讀完一本書后都可以寫書評或者做筆記,書評是公開的,筆記是私有的。按照現在的做法每個學生操作都訪問數據庫去查詢,這樣以后肯定會有性能瓶頸。

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

比如在mybatis中對應一條sql語句select * from comments condition,我可以通過ehcache建立一個內存緩存,但是如果comments新添加或者更新了一條記錄,怎么能優雅的更新上次在ehcache中添加的緩存。

各位網友是否能夠建議一下相關的解決方案?thanks :-)

問題解答

回答1:

既然是緩存,那就一定對數據實效性有容忍度,否則要嚴格實時的數據,就只能訪問數據庫查詢了。

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

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

標簽: java
相關文章:
主站蜘蛛池模板: 久久综合一区 | 免费一级毛片 | 免费久久视频 | 亚洲精品国产第一综合99久久 | 久久综合一区 | 99精品视频一区二区三区 | 亚洲精品久久久一区二区三区 | 欧美成人免费在线视频 | 欧美视频在线一区 | 国产精品久久久久久久久久久久久 | 国产日韩一区二区三免费高清 | a在线观看| 婷婷开心激情综合五月天 | 国产欧美视频一区二区三区 | 欧美成人精品激情在线观看 | 在线视频一区二区三区 | 久久久久久久香蕉 | 亚洲天堂久久新 | 欧美高清视频一区 | 中文字幕一区二区三区精彩视频 | 国产精品久久久久久久久久了 | 久久国产成人 | 成人亚洲综合 | 人人射人人草 | 欧美精品在线播放 | 精品国产免费一区二区三区五区 | 成人在线免费电影 | 国精产品一品二品国精在线观看 | 一级毛片视频 | 日韩午夜网站 | av日韩精品 | 亚洲一二三区免费 | 国产精品永久免费观看 | 女同久久另类99精品国产 | 色婷婷久久综合 | 亚洲精品国产第一综合99久久 | 日韩av成人| 视频一区在线观看 | 亚洲图片一区二区三区 | 亚洲欧美一区二区三区在线 | 日韩中文字幕一区 |