原创 mysql單表訪問方法

單表訪問方法 單表訪問時,根據索引列的匹配情況有如下幾種訪問方法。 1 const 根據主鍵或者唯一索引列直接與一個常數比較, 稱爲const 訪問。 唯一索引列中的值不重複,和主鍵一樣,所以使用二分法查詢的時候幾乎一樣快。 例如

原创 數據結構面試題整理

一 數據結構 1.你熟悉什麼數據結構? 數組 鏈表 棧 隊列 哈希 二叉樹 二叉查找樹 二叉堆 b樹 b+樹 2.b樹 b+樹 b*樹 b和b+都是節點可以有很多子節點,區別是b樹所有的節點都可以存儲關鍵字,而b+樹只有

原创 鎖升級降級消除粗化

1 鎖升級 無鎖 - 偏向鎖 -輕量級鎖(自旋鎖)-重量級鎖 無鎖 - 對象剛創建的時候是無鎖狀態 偏向鎖 - 使用鎖的線程只有一個,偏向鎖的目標是,減少無競爭且只有一個線程使用鎖的情況下,使用輕量級鎖產生的性能消耗。輕量級鎖每

原创 redis哨兵

在主從複製模式下, 一旦主節點宕機, 需要人工干預進行故障轉移, 給應用方和運維帶來了使用的不便。 引入哨兵, 主節點故障後,重新選舉新的主節點, 實現了風險轉移。 9.1 基本概念 redis數據節點: 主節點和從節點 sent

原创 redis內存

一 內存消耗 1 內存消耗統計 使用命令info memory獲取內存指標: used_memory 當前內存使用量 used_memory_peak 內存使用的最大值 2 最大消耗 對象內存是消耗內存最大的地方,它存儲着用戶所

原创 redis小功能

redis提供了一些常用的小功能,提高了redis使用的靈活性。例如: 慢查詢、pipeline、事務、bitmaps、hyperLoglog,下面將具體介紹。 5.1 慢查詢 通過慢查詢找到執行較慢的命令進行優化, 提高處理速度

原创 spring cloud hystrix原理

使用場景 服務提供方出現宕機或者網絡訪問不通時,服務調用方有時候會消耗資源在這上面,嚴重的話會出現服務雪崩,影響到其他業務流程, 引入熔斷器hystrix, 能夠自動降級,避免資源的消耗和保證服務可用性。 實現原理 1 船艙模型

原创 java虛擬機類加載機制

一 類加載機制 虛擬機把Class文件加載到內存中,並對數據進行驗證、準備、解析、初始化,最終形成可以被虛擬機使用的java類型,這就是類加載機制。 二 類加載過程 5個階段: 加載 驗證 準備 解析 初始化 1 加載 加

原创 限流算法

高併發的解決手段有緩存、異步消息隊列、集羣、限流。 而限流又分爲nginx層限流、業務代碼層的限流,本文着重說下業務代碼層面的限流手段。 限流算法 計數器算法、漏桶、令牌桶 1 計數器算法 最簡單粗暴的方式 通過控制時間頻率能夠

原创 reids緩存設計

11.1 緩存更新策略 分別從使用場景、一致性、開發維護成本三個角度分析三種緩存更新策略。 1 LRU/LFU/FIFO 淘汰策略 使用場景:當緩存的大小超過了設置的內存最大值時,需要根據淘汰策略對多出的數據進行清除; 一致性: