原创 【IO】Reactor模式

先看前兩篇: 一、IO的四種基本模式瞭解相關的概念:【IO】SBIO,SNBIO,ANIO,AIO 二、IO多路複用:【IO】IO多路複用及select,poll,epoll運行機制 接下來繼續總結Reactor模式。 IO多路複

原创 【Redis】用數據結構解釋Redis基本數據類型

redis支持多種數據類型,string,list,hash,set,zset,這個可能很多人都已經瞭如指掌了,但是redis中這些基本的數據類型都是由什麼數據機構進行實現的呢,這其中的原理又是怎麼樣的呢?這篇文章主要來針對red

原创 【IO】IO多路複用及select,poll,epoll運行機制

上篇文章梳理了四種不同的IO模式,這篇博客繼續梳理IO多路複用和Reactor模式。 IO多路複用 概念 io多路複用就是利用 select、poll、epoll 可以同時監察多個流的 I/O 事件的能力,在空閒的時候, 會把當前

原创 【高併發】JAVA集合之隊列----- (一)概覽

說起JAVA中的阻塞隊列,就不得不提到JAVA中的集合,隊列Queue繼承了Collection的所有的方法,也是一種集合的表現形式。 下圖是java中collection相關的一些接口,主要列出了有關阻塞隊列的相關類和接口。

原创 ES在linux上安裝常見問題總結

最近在linux上安裝了es,遇到很多的問題,總結一下。 安裝版本 ES安裝必須要求JDK在1.8以上,此外,不同版本的es對應的jdk版本也不一樣, JDK1.8最高只能支持ES5的安裝。所以,在安裝ES時一定要考慮es以jdk

原创 【IO】SBIO,SNBIO,ANIO,AIO

最近發現了自己之前的學習過程中的許多問題,於是想要踏實下來重寫梳理學習過的一些基礎概念,以便以後學習更加便捷。這篇文章主要總結四種不同的IO模式。 IO分成四種模型分別爲同步阻塞(Synchronous blocking I/O)

原创 利用mango對mysql進行分表操作

隨着業務量增大,當一張表存儲達到了千萬級以上時,對數據庫表操作就會影響程序性能。這個時候就需要進行對數據表進去區分。 分表的好處 分表後,單表的併發能力提高了,磁盤I/O性能也提高了,寫操作效率提高了 查詢一次的時間短了 數據分

原创 HighLevelRestClient操作ES幾種常見API總結

一、環境配置 版本在這裏一定要注意,es從6.3之後api發生了很多變化,很多api被棄用了。所以這裏用的是6.8.4. 導入jar包 <dependency> <groupId>org.elast

原创 【多線程高併發】synchronized鎖升級過程及其實現原理

問:爲什麼會有鎖升級的過程呢? 答:在java6以前synchronized鎖實現都是重量級鎖的形式,效率低下,爲了提升效率進行了優化,所以出現了鎖升級的過程。 問:我們通常說synchronized鎖是重量級鎖,那麼爲什麼叫他重

原创 【Redis】再看Redis持久化機制RDB和AOF

Redis作爲目前最流行的內存數據庫,持久化機制是我們必須要考慮的問題之一。這裏主要總結一下Redis的持久化機制以及他們之間的優缺點。 Redis持久機制主要分爲RDB和AOF。 RDB即熟稱快照方式(Redis Databas

原创 【多線程高併發】volatile關鍵字作用和實現原理

在java中多線程爲了實現共享變量能夠被準備的更新除了可以使用加排他鎖的方式,還有一種更加簡單的方式就是對共享變量進行volatile聲明。 JMM模型 Java線程之間的通信主要包括信息共享和消息傳遞。在java中,所有的實例

原创 【Redis】集羣通信、複製和故障轉移

Redis集羣是Redis提供的分佈式數據庫方案,集羣通過分片來進行數據共享,並提供複製和故障轉移功能。 節點握手 一個redis集羣通常是由多個節點組成,剛開始的時候,每隔節點都是相互獨立的,它們都處於一個只包含自己的集羣當中,

原创 【多線程】四種種方案實現多線程之間相互協作的通信

在併發編程中,經常會遇到多個線程之間需要相互協作的情況,即並不是多個線程同時執行,而是按照一定的順序循環執行的情況。 那麼怎樣去實現這種效果呢?這裏介紹三種方案。 這裏都以子線程循環10次,然後主線程循環10次,然後往復循環50次

原创 【Redis】redis中一條命令的執行都需要經歷什麼?

我們都知道在redis客戶端向服務器發送一條命令可以實現數據的增刪改查,但是這條命令的執行過程是怎麼樣的呢?執行命令前需要哪些準備呢? 首先在所有命令執行前,必須要啓動服務器和客戶端: 1、服務器的啓動 2、客戶端地創建 其次,纔

原创 【mysql】B+樹結構在各個索引類型中的表現形式

B+樹索引是目前關係型數據庫系統中查找最爲常用和最爲有效的索引。 B+樹索引並不能找到一個給定鍵的具體行,B+樹索引能找到的只是被查找數據行所在的頁,然後數據庫通過把頁讀入到內存,再在內存中進行查找,最後得到要查找的數據。 B+樹