原创 jvm的性能調優的學習(一)

1 基於jdk命令行的工具   1.1jvm的參數類型 標準參數 -help -server -client -version -showversion -cp -classpath X參數 非標準化參數 -Xint :解釋執行 -X

原创 jvm的性能調優的學習(二)

1 垃圾收集器 serial串行收集器:serial,serial old parallel並行收集器:parallerl scavenge,parallel old,強調吞吐量 concurrent併發收集器:cms,G1,強

原创 juc之atomic的學習

atomic基本類型 常見方法 public final int get() public final int getAndSet(int newValue) public final int incrementAndGet()

原创 JUC之AQS的學習

AbstractQueuedSynchronizer 有了它這個基礎類可以方便構建其它的線程協作工具類。 AQS三大核心 state狀態 具體含義會根據不同實現的類不同的定義。比如在semaphore裏,它表示剩餘的許可證數量,在Coun

原创 juc之Lock的學習

Lock接口的主要方法 //嘗試獲取鎖,超時就放棄當前鎖 boolean tryLock(long time, TimeUnit unit) throws InterruptedException; //相當於把超時時間設置爲無限,在

原创 Redis學習之開發規範

key名設計 可讀性和可管理性,以業務名或數據庫名爲前綴防止key衝突,用冒號分隔。例子業務名:表名:id,比如ugc:video:1 簡潔性,保證語義的情況下,儘量縮減key的長度 不要包含特殊字符,空格,換行,單雙引號 value的設

原创 Redis學習之複製的原理與優化

Redis的主從結構可以採用一主多從或者級聯結構,Redis主從複製可以根據是否是全量分爲全量同步和增量同步。 一個master可以有多個slave 一個slave只能有一個master 數據流是單向的,master到slave 兩種實現

原创 JUC之CAS學習和Final的不變性

CAS定義:compare and swap CAS有三個操作數:內存值(現在的值)v,預期值(期望的值)A,要修改的值B,當且僅當期望的值A和現在內存值V相等時,纔將內存值修改爲B,否則什麼都不做。 在java中是如何利用cas實現原子

原创 Redis學習之sentinel

安裝與配置   可以看到這裏監控的只是master主節點。通過redis-sentinel 啓動後查看info。會自動發現slave。 客戶端連接sentinel     大體流程

原创 mysql的學習(三)之數據庫優化

數據庫結構設計 數據存儲 數據處理 數據的安全性和完整性 數據庫設計三範式 第一範式 數據庫表中所有字段都只有單一屬性 單一屬性的列是由基本的數據類型所構成 設計出來的表都是簡單的二維表 第二範式 數據庫表中只有一個業務主鍵 不能存在非主

原创 Redis學習(三)之持久化

RDB快照 觸發機制: save同步會阻塞 bsave異步,fork主線程的子線程,中間生成臨時rdb文件最後生成正式的rdb文件 自動  最佳配置 dbfilename dump-${port}.rdb dir /bigdisk

原创 消息中間件之RabbitMQ(一)

RabbitMq是由erLang語言開發的基於AMQP協議的開源消息隊列。AMQP特徵主要是面向消息,隊列,路由(包括點對點、發佈訂閱),可靠性,安全。AMQP協議更多用在企業系統內,對數據一致性,穩定性和可靠性要求比較高的場景。  

原创 mysql學習之sql優化

  慢查詢日誌分析問題sql slow_query_log 啓動或者停止慢查詢日誌 slow_query_log_file 指定慢查詢日誌的存儲路徑和文件 long_query_time 指定記錄慢查詢日誌的閾值通常改爲0.00

原创 mysql學習之複製功能

複製:利用二進制日誌增量進行。 實現在不同服務器上的數據分佈 實現讀取數據的負載均衡 增強了數據的安全性 實現數據庫高可用和故障切換 mysql日誌  mysql二進制日誌: 記錄了所有對數據庫的修改事件包括增刪改查事件和對錶結構的修改

原创 JUC之線程協作工具

CountDownLatch倒數門閂 流程:倒數結束之前一直處於等待狀態,直到倒數結束時,此線程纔開始工作。 主要方法: //構造方法傳入倒數次數 public CountDownLatch(int count) {