原创 GC統計工具--jstat

jstat:虛擬機統計信息監視工具(JVM Statistics Monitoring Tool) 說明:監視虛擬機的各種運行狀態:類裝載、內存、垃圾收集等運行數據。 格式:jstat [option] PID [interva

原创 Struts2源碼分析(一) 一一一 ModelDrivenInterceptor

ModelDrivenInterceptor的核心源碼 【說明】 ModelDrivenInterceptor是默認的攔截器鏈(struts-default)的一部分,當一個請求經過ModelDrivenInterceptor的時

原创 Struts2源碼分析(二) 一一一 StrutsRequestWrapper

StrutsRequestWrapper的源碼 public class StrutsRequestWrapper extends HttpServletRequestWrapper { public StrutsReq

原创 JVM中的垃圾收集算法

----------------------------------------------------------------------- 垃圾收集算法 --------------------------------------

原创 ps命令 & proc文件系統

ps命令 & proc文件系統 ps 查詢所有的進程: ps -ef | head -1 && ps -ef | grep "進程名" # 顯示所有的進程,顯示的項目有:UID,PID,PPID,C,STIME,TTY,TIM

原创 redis的緩存淘汰策略

緩存淘汰策略: 背景: 當Redis內存超出物理內存限制時,內存的數據會開始和磁盤產生頻繁的交換(swap),導致Redis的性能急劇下降,造成redis服務的不可用。 爲了限制最大使用內存,Redis提供了配置參數maxme

原创 複合索引&最左原則

建表語句: CREATE TABLE `t_user` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `bu_id` INT(20) NOT NULL, `name` VARCHA

原创 Databus架構分析

1. 簡介   Databus是一個低延遲、可靠的、支持事務的、保持一致性的數據變更抓取系統。由LinkedIn於2013年開源。Databus通過挖掘數據庫日誌的方式,將數據庫變更實時、可靠的從數據庫拉取出來,業務可以通過定製化clie

原创 HashMap VS HashTable

HashMap VS HashTable 相同點: 1>都是Map的子類。 2>都是基於Entry數組實現的。 不同點: 1>HashMap多線程下是不安全的,HashTable是線程安全的。 2>Hash

原创 redis中的數據結構和編碼

redis中的數據結構和編碼: 背景: 1>redis在內部使用redisObject結構體來定義存儲的值對象。 2>每種類型都有至少兩種內部編碼,Redis會根據當前值的類型和長度來決定使用哪種編碼實現。 3>編碼類型

原创 緩存場景問題處理

緩存雪崩 概念:大量的key使用相同的過期時間,導致大量的緩存在某一時刻集體失效,從而造成大量請求同時打到DB,造成DB瞬時壓力太大導致雪崩。 解決:將key的過期時間分散開來。在原來的過期時間上加上一個隨機值。 緩存擊穿

原创 詳解ThreadLocal模式

ThreadLocal:java.lang.ThreadLocal 作用:解決多線程中數據共享的問題,即:解決了同一線程中隸屬於不同開發層次(表示層、業務層、持久層)的數據共享問題,故可以對執行邏輯和執行數據進行有效的解耦 應用:應

原创 java中NIO的非阻塞通信

使用NIO完成網絡通信的三個要點: 1)通道(Channel):負責連接 java.nio.channels.Channel 接口: |--SelectableChannel |--SocketC

原创 redis的主從複製

主從複製: 場景: 執行slaveof命令後,複製過程便開始啓動。 執行laveof no one命令後,終止從節點與主節點複製。 數據同步方式: 全量複製:第一次複製時採用全量複製,當數據量較大時,會對主從節點和網絡

原创 阿里雲Redis開發規範

一、鍵值設計 1. key名設計 (1)【建議】: 可讀性和可管理性 以業務名(或數據庫名)爲前綴(防止key衝突),用冒號分隔,比如業務名:表名:id ugc:video:1 (2)【建議】:簡潔性 保證語義的前提下,控制key的長度