原创 分佈式基礎--BASE

前言        BASE是CAP理論的延伸,核心思想是:即使無法滿足強一致性(CAP中的一致性),也要滿足最終一致性。        BASE指Basically Available(基本可用),Soft State(軟狀態),Eve

原创 深入理解Hbase--簡介

一、介紹HBase Apache HBase™ is the Hadoop database, a distributed, scalable, big data store. HBase is a type of "NoSQL" da

原创 深入理解Redis--fork操作

1、fork操作 (1)同步操作        雖然fork同步操作是非常快的,但是如果需要同步的數據量過大(比如超過20G),fork就會阻塞redis主進程。 (2)與內存量息息相關        內存越大,fork同步數據耗時越長,

原创 分佈式基礎--CAP原理

            上圖是CAP原理圖,看到之後,不禁引入下面幾個問題,讓我們一一帶着問題去了解CAP。   1.什麼是CAP?   2.什麼是分區?   3.爲什麼只有3選2?   4.可用的抉擇? 1. 什麼是 CAP 定理  

原创 深入理解JVM之--運行時數據區域

運行時數據區域         JVM在執行Java程序的過程中會把說管理的內存分爲不同的數據區域。有的區域是在虛擬機啓動而創建,有的區域則是跟隨線程的啓動和結束而建立銷燬。如下圖,在JVM GC調優中通常都是堆、方法區。   1.程序

原创 深入理解Golang之defer

(1)鞏固練習:    看看以下三個函數的返回值: func f() (result int) {      defer func() {          result++      }()      return 0 } fu

原创 深入理解Golang之interface

1. interface:簡單的說,interface是一組method的組合,我們通過interface來定義對象的一組行爲。 參考下面這個例子: package main import "fmt" type Human in

原创 linux安裝RabbitMQ教程

RabbitMQ是流行的開源消息隊列系統,是AMQP(Advanced Message Queuing Protocol高級消息隊列協議)的標準實現,用erlang語言開發。RabbitMQ據說具有良好的性能和時效性,同時還能夠非常好的支

原创 Redis緩存雪崩、穿透、擊穿及解決辦法

1.緩存雪崩   概述:系統在高併發的情況下,超過了當前的承受量,容易出現宕機。  解決辦法:1.集羣,較少壓力                    2.本地ehache緩存                    3.redis持久化,

原创 Synchronized,Lock底層解析

概述         在JDK1.5之前,使用synchronized來實現線程同步的,同步的開銷較大效率較低,因此在JDK1.5之後,推出了代碼層面的Lock接口(synchronized爲jvm層面)來實現與synchronized同

原创 深入理解JVM之--類的加載機制

1.類的加載過程    Java中從類被加載到虛擬機內存中開始,到卸載出內存結束。整個生命週期包括:    加載--驗證---準備---解析---初始化---使用---卸載,一共七個階段。其中驗證-準備--解析被統稱爲”連接“,如下圖:

原创 深入理解Redis--主從複製

1、Redis單機部署有什麼問題? (1)機器故障        服務器掛掉了;        CPU壞掉了;        主板壞了啊;   (2)容量瓶頸        比如我們服務器有16G內存,但是我們有一個需求需要60G內存,顯

原创 深入理解Redis--子進程開銷與優化

1、CPU (1)開銷         RDB和AOF文件生成,屬於CPU密集型 (2)優化     (1)不做CPU綁定,也就是不把redis進程綁定在一個CPU上;      (2)不和CPU密集型服務部署在一起;   2、內存 (1

原创 深入理解redis--應對阻塞

  (一)耗時長命令造成阻塞     1. keys、sort,save等命令     keys命令用於查找所有符合給定模式 pattern 的 key,時間複雜度爲O(N), N 爲數據庫中 key 的數量。當數據庫中的個數達到千萬時,

原创 深入理解Redis--RDB和AOF

        Redis是一個No-SQ緩存數據庫,數據保存在內存中,由於讀寫頻繁,或在出現宕機等等異常情況,數據往往會丟失。不用擔心,Redis給我們提供了持久化的機制,分別是RDB(Redis DataBase)和AOF(Appen