文章目錄
1.java相關
1.1 Java基礎
文章 | 相關 |
---|---|
爲什麼 String 的 hashCode 選擇 31 作爲乘子? | |
爲啥需要序列號ID | |
基於註解實現的策略模式優化switch case | 我的demo代碼 |
lambda實現策略模式 | |
lambda實現責任鏈模式 | |
maIn方法爲啥必須是static |
1.2 Java JVM相關
文章精選 | 更多 |
---|---|
2019 年 300 多篇精華文章分類彙總,提升你的內功! | |
Class.forName 和 ClassLoader 有什麼區別 |
內容 |
---|
springbootJVM調優 |
JVM內存溢出後,其它線程是否能正常工作 |
查看GC日誌 |
Linux查詢日誌方式 |
1.3 Java多線程、併發
文章 | 相關 |
---|---|
長連接的心跳及重連 | 可以參考dubbo的心跳 |
基於時間輪的延時消息 | 可以參考Netty 中的 HashedWheelTimer |
爲啥wait要放到同步代碼塊中? | |
rateLimiter限流(平滑) | 帶預熱期的限流模式 |
sprigboot集成Hystrix做線程隔離 | |
分佈式限流和Nginx限流 | |
秒殺系統設計 | |
ThreadLocal解決現實中的問題 | |
停止線程的多種方式 | |
防止超賣 |
2. mysql
2.1 mysql crud
文章 |
---|
MySQL累加 |
MySQL性能以及查詢優化 |
mysql 幾種log |
2.2 mysql 索引
2.3 MySQL事務
文章 | 相關 |
---|---|
mysql分區的優缺點 | |
1. 數據庫緩存和數據庫的一致性 |
筆記:
1.先更新數據庫,再刪除緩存
- 更新數據的時候先更新數據庫,再刪除緩存,爲啥是要刪除緩存,而不是更新呢?
- 爲了防止一直在更新,而不查詢的操作
- 如果刪除緩存失敗了,怎麼辦?數據就不一致了
- 解決方案是:先刪除緩存,再更新數據庫
2. 先刪除緩存,再更新數據庫
6. 如果修改還沒有完成,又來了一個請求,讀緩存發現是NULL,就去數據庫查詢到了舊的值,放入緩存中,完了,數據又不一致了,怎麼解決
7. 藉助一個隊列,每次更新數據往緩存中添加一個更新數據的id,如果有一個更新數據的操作正在執行,這時緩存肯定爲NULL,但是這時候又來了一百個請求數據的接口,其實就可以往隊列裏面添加100個請求更新緩存的id,這100個請求數據的接口,其實可以變成一個,因爲只要中間沒有其它的請求,然後就可以讓線程處理消息隊列就好了,到那時會有請求超時的問題,鏈接中有解決方案
2.4 主從
2.5 分庫分表
3. spring boot
文章 | github |
---|---|
spring boot如何啓動 |
3.1 springboot一些小功能
3.2 spring boot參數配置
3.3 spring boot調優
文章 | 相關 |
---|---|
idea調試技巧 |
4. dubbo
文章 | 相關 |
---|---|
dubbo優雅停機 | |
dubbo RPC壓力測試 |
5. 分佈式
文章 | 相關 |
---|---|
分佈式事務 | |
Jenkins搭建 |
6. redis
文章 | 相關 |
---|---|
redis內存滿了怎麼辦 | |
redis數據結構的應用和三主三從集羣的搭建 | |
redis內部結構編碼方式 |
7. 源碼分析
類型 | 分析 |
---|---|
ConcurrentHashMap分析 | |
mybatis9種設計模式 |
8. mongo
功能 | 額外 |
---|---|
mongo多數據源支持 |
9. 算法相關
需求 | 實現 |
---|---|
5千萬數據排序 |
10 雜七雜八
文章 | |
---|---|
開發工具推薦 | |
一個TCP請求可以發送多少HTTP請求? | |
session和cookie的區別 |