原创 分佈式鍵值系統redis思考四

雙寫一致性 但是在更新緩存方面,對於更新完數據庫,是更新緩存呢,還是刪除緩存。又或者是先刪除緩存,再更新數據庫。 從理論上來說,給緩存設置過期時間,是保證最終一致性的解決方案。這種方案下,我們可以對存入緩存的數據設置過期時間,所

原创 centos 8安裝教程

1.下載 http://mirrors.163.com/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso 第二步:Vmware WorkstationPRO15

原创 Mysql8及客戶端安裝教程

1.下載 鏈接:https://pan.baidu.com/s/1vS7C84Zm3rN2Hcx8r1nobg 提取碼:v571 安裝Server 管理員身份運行cmd 3.安裝可視化工具navica

原创 web網絡安全

我覺得咱程序員多多少少得了解一下安全方面的知識,當然小夥伴們別想歪了。瞭解信息安全知識不管是在日常吹牛emmm還是開發工作中都能起到一定作用。 Top10 端口掃描技術 端口掃描俗稱網絡探針,是黑客經常使用的一種技術,它一般是網

原创 類加載那些事兒

類加載想必大家都知道類加載的機制是雙親委派模式但是有些地方需要破壞雙親委派模型我們再看看類加載的流程類加載和初始化時機圖解分析加載 想必大家都知道類加載的機制是雙親委派模式 雙親委派如何實現? 當我們自定義加載器必然要繼承jav

原创 由深淺拷貝引發JVM內存區域思考

Some things have no reason, but they have to be done 先來看一個淺拷貝的例子 /* clone方法實現淺拷貝 */ public class ShallowCopy {

原创 一篇整理JDK新特性

目錄static?default? lamda表達式?常見的函數式接口方法引用Stream總結Optinal用法介紹新的日期API LocalDate | LocalTime | LocalDateTimeCompletableF

原创 模塊化gradle項目構建

以下基於Gradle 5.2.1版本 根目錄創建settings.gradle include 'proto' include 'common' include 'mgcc' include 'mgcc-config' inclu

原创 字符串常量池的坑知多少?

常量池有坑嗎,下面我們用jdk1.8環境來看看怎麼回事 public static void main(String[] args) { String str1 = new StringBuilder("計算機")

原创 你瞭解JVM常量池嗎?

常量池啥啥分不清嗎?來一篇洗洗腦吧 字符串常量池 結構:它是一個String Table類,實質上是一個Hash表,默認長度是1009。全局字符串池裏的內容是在類加載完成,經過驗證,準備階段之後在堆中生成字符串對象實例存到st

原创 數據庫驅動【獲取connection對象】【篇幅一】

我們不應該僅僅靠記憶來掌握技術,我們要靠我們自身的邏輯分析能力,理出一道邏輯線,總結出學習技術和解決技術問題的方法論,記憶知識幫助我們快速拿出東西解決問題,而方法論纔是我們面臨後續挑戰的真正手段。 本次分析基於mysql驅動8

原创 驅動加載【Class.forName】的背後

本篇我們來聊聊數據庫驅動是如何工作的 下面我們以mysql驅動8.0.13來講述 先來看看驅動的加載 Class.forName("com.mysql.cj.jdbc.Driver"); 相信這一段代碼大家都很熟悉,加載一

原创 分佈式鍵值系統redis思考二

面試官:redis和memcached有什麼區別。我:redis是單線程的,memcaced是多線程的。好,那麼redis真的是單線程的嗎? 目錄網絡IO、線程模型從網絡IO模型講起redis的線程模型文件事件處理器(file

原创 線上訂單號重複了?一招搞定它!

問題的背景 公司老的系統原先採用的時間戳生成訂單號,導致瞭如下情形 打斷一下:大家知道怎麼查系統某項重複的數據吧 SELECT * FROM XX表 WHERE 重複項 in( SELECT 重複項 FROM XX表 GROU

原创 大規模分佈式存儲系統筆記一

好玩的分佈式筆記一 概述 目前分佈式兩個特點:一個特點是規模大(大量機器),另一個特點成本低(小型機)。 爲什麼要引入分佈式的技術呢?企業要做大,流量要做大,逼着分佈式技術在互聯網應用,而且越來越壓榨機器的性能。本篇只是引入一個分