原创 InnoDB Buffer Pool詳解(緩衝池) 什麼是Buffer Pool? Buffer Pool的內存結構 Buffer Pool處理流程 配置 寫數據 change buffer

什麼是Buffer Pool? Buffer Pool是MySQL InnoDB引擎用於緩存訪問到的表數據的一塊內存空間,主要用於加速SQL的執行速度,因爲內存的處理速度要遠高於訪問磁盤。說白了,其實它就相當於我們項目中的Redis緩存,

原创 select,poll,epoll 簡單概述 水平觸發與邊緣觸發 select epoll Java中select BUG

簡單概述select,poll,epoll都是用來實現IO多路複用的機制,在Linux網絡模型中對應着IO複用模型Unix上的IO模型select:最大支持1024個文件描述符,在描述符較多情況下性能較差,水平觸發poll:poll與sel

原创 回溯算法之-排列 leetcode 46 全排列 Leetcode 47 全排列2

回溯算法之-組合總和請看:https://www.jianshu.com/p/2a9856b96a86 leetcode 46 全排列 給定一個 沒有重複數字的序列,返回其所有可能的全排列。 先來說下排列和組合的區別,排列是給定可選擇數組

原创 回溯算法之-組合總和 回溯算法模版 leetcode 39 組合總和 leetcode 40 組合總和2 leetcode 216 組合總和3

回溯算法模版 首先上一套回溯算法模版,很多回溯算法都可以使用該模版解決 public List<List<Integer>> problem(參數不定) { List<List<Integer>> res = new

原创 回溯算法之-子集 leetcode 78 子集 Leetcode 90 子集2

關於回溯法的模版請看:https://www.jianshu.com/p/2a9856b96a86 leetcode 78 子集 給你一個整數數組 nums ,數組中的元素 互不相同 。返回該數組所有可能的子集(冪集)。解集 不能 包含重

原创 常見的兩種零拷貝技術 什麼是零拷貝? Linux mmap() Linux sendfile()

什麼是零拷貝? 在講解零拷貝之前,我們先來了解一下爲什麼要引入零拷貝,以及零拷貝解決了什麼問題。 內核態與用戶態 操作系統爲了限制不同程序之間的訪問能力,防止他們獲取別的程序的內存數據或者外設的數據以及限制某些指令的調用,所以劃分出內核與

原创 InnoDB Buffer Pool詳解(緩衝池) 什麼是Buffer Pool? Buffer Pool的內存結構 Buffer Pool處理流程 配置 change buffer

什麼是Buffer Pool? Buffer Pool是MySQL InnoDB引擎用於緩存訪問到的表數據的一塊內存空間,主要用於加速SQL的執行速度,因爲內存的處理速度要遠高於訪問磁盤。說白了,其實它就相當於我們項目中的Redis緩存,

原创 SpringData之Spring-Redis使用

上一篇簡單介紹了Redis,本文介紹一下如何操作Redis。對於現有的操作Redis比較知名的框架有Jedis(歷史悠久)和Lettuce(後來居上,大有趕超之勢,推薦使用lettuce,他是基於netty實現的非阻塞redis客戶端,並且

原创 InnoDB加鎖分析 innodb鎖類型 RR隔離級別加鎖分析

innodb鎖類型 Share and Exclusive Locks(共享與排它鎖) Intention Locks(意向鎖) Record Locks (記錄鎖) Gap Locks(間隙鎖) Next-Key Locks Inse

原创 記一次Index-Merge造成的死鎖

起因前一段時間一個沒有多少量的項目突然線上出錯報警,第一時間查到異常日誌報錯信息比較明顯,數據庫產生死鎖。分析分析代碼之前讓我們來複習一下什麼是死鎖以及產生死鎖的原因是什麼死鎖產生原因是什麼❓當兩個及以上的事務,都在等待對方釋放已經持有的鎖

原创 樹的層次遍歷總結

最近正巧Leetcode出了每日一題計劃,本着蹭點積分的原則,每天都會寫幾道題,做了一些關於樹的層次遍歷的題目,都是一樣的套路,簡單總結一下幾道關於層次遍歷的題目。102. 二叉樹的層次遍歷這到題是我們做後面層次遍歷變形題目的基礎,只要掌握

原创 Tomcat整體結構介紹

Tomcat作爲web容器廣爲人知,從我最開始學Java一直到現在工作,可以說是伴隨了我的整個編程生涯。Tomcat的本質是一個Servlet容器。一個Servlet能做的事情是:處理請求資源,併爲客戶端填充response對象。Tomca

原创 MySQL-InnoDB拾遺

之前寫過一篇介紹MySQL中存儲引擎的文章MySQL之存儲引擎,在實際工作中,還是以InnoDB存儲引擎爲主,此文大部分爲InnoDB引擎中的概念拾遺。體系模型以上爲InnoDB存儲引擎大致上的體系結構。其中後臺線程負責:刷新內存池中數據;

原创 分佈式ID生成算法

最近在看sharding-jdbc相關的資料,此篇文章是對其中涉及的分佈式ID生成算法做一個總結。先拋開sharding-jdbc的實現策略,我們來介紹一下幾種常見的分佈式ID生成算法。UUID這個是最簡單的生成算法。優點:本地生成,無網絡

原创 Spring Cloud Zuul源碼分析

在Spring Cloud Zuul中介紹了Zuul 1.x的基本使用,本文從源碼角度介紹一下zuul的底層實現。先來一張zuul的整體流程圖。可以看到Zuul本質上是一個servlet,在這個servlet裏面封裝了一系列的過濾器,然後再