原创 Mybatis3源碼分析(3)流程走向

分析源碼我們還是從編程式demo入手 我們通過建造者模式創建一個工廠類,配置文件的解析就是在這一步完成的,包括 mybatis-config.xml 和 Mapper 適配器文件。 首先進入build 進入XMLcon

原创 Redis學習(4)-慢查詢分析與RESP協議

慢查詢 Redis慢查詢分析 與MySQL一樣:當執行時間超過極大值時,會將發生時間、耗時、 命令記錄; redis命令生命週期:發送 排隊 執行 返回,慢查詢只統計第3個執行步驟的時間 Redis如何設置 動態設置6379

原创 併發編程學習(5)Condition

Condition 在前面學習 synchronized 的時候,有wait/notify 的基本使用,結合 synchronized 可以實現對線程的通信。那麼,既然 J.U.C 裏面提供了鎖的實現機制,那 J.U.C 裏面應該

原创 數據結構學習-動態數組

學習數據結構 -動態數組 模仿 ArrayList public class ArrayList<E> { /** * 大小 */ private int size; /**

原创 MySQL性能調優(3)查詢優化詳解

查詢執行路徑 ##### MySQL 客戶端/服務端通信 - MySQL客戶端與服務端的通信方式是“半雙工”; - 客戶端一旦開始發送消息,另一端要接收完整個消息才能響應。客戶端一旦開始接收數據沒法停下來發送指令。 - 對於一個

原创 Mybatis3源碼分析(6)簡單手寫思路及面試題

手寫基本流程 流程 定義接口 Mapper 和方法,用來調用數據庫操作。Mapper 接口操作數據庫需要通過代理類。 定義配置類對象 Configuration。 定義應用層的 API SqlSession。它有一個 get

原创 MySQL性能調優(6)解讀58同城數據庫設計軍規30條

軍規適用場景:併發量大、數據量大的互聯網業務 只是解讀:沒必要完全效仿 基礎規範 必須使用InnoDB存儲引擎 解讀:支持事務、行級鎖、併發性能更好、CPU及內存緩存頁優化使得資源利用率更高 必須使用UTF8字符集不過現在基

原创 併發編程學習(4)Lock

初步認識JUC Java.util.concurrent 是在併發編程中比較常用的工具類,裏面包含很多用來在併發場景中使用的組件。比如線程池、阻塞隊列、計時器、同步器、併發集合等等。併發包的作者是大名鼎鼎的 Doug Lea。 l

原创 Redis學習(2)-緩存擊穿、穿透、雪崩、熱點數據

設計一個緩存系統,不得不要考慮的問題就是:緩存穿透、緩存擊穿與失效時的雪崩效應。 這裏不涉及一級緩存還是二級緩存,主要是講述使用緩存的時候可能會遇到的一些問題以及一些解決辦法 我們使用緩存的時候流程一般是這樣: 當我們查詢一條數

原创 Redis學習(1)-基本命令與持久化機制

docker簡單安裝設置密碼並開啓持久化 docker run -d --name myredis -p 6379:6379 redis --requirepass "156967" --appendonly yes 文檔 文檔

原创 MySQL性能調優(7)複習補充

複習時自己產生的問題 log 緩衝池 Buffer Pool 首先,InnnoDB 的數據都是放在磁盤上的,InnoDB 操作數據有一個最小的邏輯單位,叫做頁(索引頁和數據頁)。我們對於數據的操作,不是每次都直接操作磁盤,因爲

原创 完整安裝kubernetes集羣環境(不需要科學上網)

1.準備基礎環境 我們將使用kubeadm部署3個節點的 Kubernetes Cluster 節點詳細信息: 節點主機名 節點IP 節點角色 操作系統 節點配置 k8s-master 192.168.217.131

原创 MySQL性能調優(4)Innodb存儲引擎的事務

事務 數據庫操作的最小工作單元,是作爲單個邏輯工作單元執行的一系列操作;事務是一組不可再分割的操作集合(工作邏輯單元); MySQL中如何開啓事務: begin / start transaction -- 手工 commit /

原创 MySQL性能調優(2)存儲引擎介紹、體系結構及運行機理

存儲引擎介紹 插拔式的插件方式(存儲引擎本身是數據庫服務器的組件,負責對在物理服務器層面上維護的基本數據進行實際操作) 存儲引擎是指定在表之上的,即一個庫中的每一個表都可以指定專用的存儲引擎 最新的MySQL 8.0 發佈之後,

原创 MySQL性能調優(5)Innodb引擎的MVCC

MVCC Multiversion concurrency control (多版本併發控制) 併發訪問(讀或寫)數據庫時,對正在事務內處理的數據做多版本的管理。以達到用來避免寫操作的堵塞,從而引發讀操作的併發問題。 這裏看一個案