亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:109日期: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
相關文章:
主站蜘蛛池模板: www.香蕉视频.com | 香蕉视频国产精品人 | 日本一级成人毛片免费观看 | 1769国内精品观看视频 | 精品成人毛片一区二区视 | 国产美女在线观看 | 国产精品v欧美精品v日韩 | 亚洲国产精品综合欧美 | 色婷婷激情综合 | 真实国产精品视频国产网 | 欧美高清色视频在线播放 | 免费一级a毛片 | 亚洲欧美4444kkkk| 真人女人一级毛片免费视频观看 | 国产亚洲欧美另类一区二区三区 | 日本香蕉一区二区在线观看 | 91久久精品国产免费一区 | 亚洲成人激情片 | 香蕉国产人午夜视频在线 | 久久精品亚洲欧美日韩久久 | 国产一级二级三级在线观看 | 高清国产在线播放成人 | 中文字幕 国产 | 免费无尽xxx视频 | 无耻三级在线观看 | 七色永久性tv网站免费看 | 4388x17亚洲最大成人网 | 爱爱小视频在线观看网站 | 欧美高清免费一级在线 | 日本免费二区三区久久 | 亚洲狠狠婷婷综合久久久久 | 永久免费在线观看视频 | 8888四色奇米在线观看免费看 | 成人三级图片 | 欧美日韩在线视频观看 | 亚洲免费色图 | 国产一级片免费视频 | 女人国产香蕉久久精品 | 天天在线天天看成人免费视频 | 国产成+人+综合+欧美 亚洲 | 涩涩看片 |