原创 分佈式基礎--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