原创 深入Redis 主從複製原理

複製過程 複製的過程步驟如下: 從節點執行 slaveof 命令 從節點只是保存了 slaveof 命令中主節點的信息,並沒有立即發起複製 從節點內部的定時任務發現有主節點的信息,開始使用 socket 連接主節點 連接建立成功後,發送

原创 代理模式

代理模式 代理模式的定義 代理模式(Proxy Pattern)是一個使用率非常高的模式,其定義如下: Provide a surrogate or placeholder for another object to control acc

原创 關於【緩存穿透、緩存擊穿、緩存雪崩、熱點數據失效】問題的解決方案

前言 在我們的平常的項目中多多少少都會使用到緩存,因爲一些數據我們沒有必要每次查詢的時候都去查詢到數據庫。 特別是高 QPS 的系統,每次都去查詢數據庫,對於你的數據庫來說將是災難。 今天我們不牽涉多級緩存的知識,就把系統使用到的緩存方案,

原创 GIT和SVN教程

各種版本控制工具的簡單比較 特性 CVS SVN GIT 併發修改 支持 支持 支持 併發提交 不支持 支持 支持 歷史軌跡 不支持更名 支持更名 支持更名 分佈式 不支持 不支持 支持 SVN SVN服務端

原创 SpringBoot整合Dubbo配合ZooKeeper註冊中心

安裝ZooKeeper 我這裏使用zookeeper作爲服務註冊中心,版本3.4.9,下載地址: http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.12/ 下載後,解壓 要先

原创 Redis持久化背後的故事

Redis持久化 Redis提供了不同的持久化選項: RDB持久化以指定的時間間隔保存那個時間點的數據快照。 AOF持久化方法則會記錄每一個服務器收到的寫操作。在服務器啓動時,這些記錄的操作會逐條執行從而重建出原來的數據。寫操作命令記錄的

原创 【轉】MySql 三大知識點——索引、鎖、事務

索引 索引,類似書籍的目錄,可以根據目錄的某個頁碼立即找到對應的內容。 索引的優點:1. 天生排序。2. 快速查找。 索引的缺點:1. 佔用空間。2. 降低更新表的速度。 注意點:小表使用全表掃描更快,中大表才使用索引。超級大表索引基本無效

原创 利用Docker搭建Redis集羣

Redis集羣搭建 運行Redis鏡像 分別使用以下命令啓動3個Redis docker run --name redis-6379 -p 6379:6379 -d hub.c.163.com/library/redis docker r

原创 1114. 按序打印

1114. 按序打印 題目描述 我們提供了一個類: public class Foo { public void one() { print("one"); } public void two() { print("two"); } pub

原创 synchronized的實現原理與應用

synchronized概述 在多線程併發編程中synchronized一直是元老級角色,很多人都會稱呼它爲重量級鎖。但是,隨着Java SE 1.6對synchronized進行了各種優化之後,有些情況下它就並不那麼重了。 先來看下利用s

原创 JVM複習總結

運行時數據區域 圖中深色區域爲,由所有線程共享的數據區域,其他爲線程隔離的數據區。 程序計數器 程序計數器可以看作是當前線程執行的字節碼的行號指示器。 虛擬機棧 虛擬機棧描述的是Java方法執行的內存模型;每個方法在執行的同時都會創建一個

原创 ConcurrentHashMap

ConcurreentHashMap的實現原理與使用 ConcurrentHashMap是線程安全且高效的HashMap。 爲什麼要使用ConcurrentHashMap 在併發編程中使用HashMap可能導致程序死循環。而使用線程安全的H

原创 51. N皇后

51. N皇后 題目描述 n 皇后問題研究的是如何將 n 個皇后放置在 n×n 的棋盤上,並且使皇后彼此之間不能相互攻擊。 上圖爲 8 皇后問題的一種解法。 給定一個整數 n,返回所有不同的 n 皇后問題的解決方案。 每一種解法包含一個明

原创 書單

前言 羅列出我上大學以來看的技術書籍 Java Java核心技術·卷 I(原書第10版) 深入理解Java虛擬機(第2版) Java併發編程的藝術 JavaWeb 深入分析Java Web技術內幕(修訂版) Spring家族 Sp

原创 深入理解Java內存模型JMM與volatile關鍵字

深入理解Java內存模型JMM與volatile關鍵字 多核併發緩存架構 Java內存模型 Java線程內存模型跟CPU緩存模型類似,是基於CPU緩存模型來建立的,Java線程內存模型是標準化的,屏蔽掉了底層不同計算機的區別。 例子 編