原创 Redis 事務的ACID(爲什麼是半原子性,特定持久化)

背景 在傳統的關係式數據庫中,常常用ACID性質來檢驗功能的可靠性和安全性。 在Redis中,事務總是具有原子性(Atomicity)、一致性(Consistency)和隔離性(Isolation),並且當Redis運行在某種特定的持久化

原创 java 壓縮圖片工具(Thumbnailator)

http://code.google.com/p/thumbnailator/ maven <!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->

原创 Redis 深入理解內存回收策略設計思想(過期鍵刪除策略和內存淘汰策略)

過期鍵刪除策略 一般一個鍵過期了,有以下三種不同的策略可以進行刪除: (1)定時刪除:在設置鍵的過期時間的同時,創建一個定時器(timer),讓定時器在鍵的過期時間來臨時,立即執行對鍵的刪除操作。 定時刪除策略對內存是最友好的:通過使用定

原创 Redis 跳躍表skiplist(深入理解,面試再也不用怕)

跳躍表 在單鏈表中查詢一個元素的時間複雜度爲O(n),即使該單鏈表是有序的,我們也不能通過2分的方式縮減時間複雜度。        跳躍表(skiplist)是一種有序數據結構,它通過在每個節點中維持多個指向其他節點的指針(注:可以理解

原创 Redis 數據結構之字典(漸進式rehash)

Redis字典結構 哈希表結構 Redis字典使用的哈希表由dict.j/dictht結構定義,如下: 其中table屬性是一個數組,數組元素爲dict.h/dictEntry結構(key-value結構,類似於java中hashMa

原创 Redis rehash內存暴增問題

redis內存分析 (1) 自身內存:一個空的Redis佔用很小,可以忽略不計 (2) kv內存:key對象 + value對象 (3) 緩衝區:客戶端緩衝區(普通 + slave僞裝 + pubsub)以及aof緩衝區(比較固定,一般沒

原创 Redis 5種數據結構(底層原理,性能分析,使用場景)

Redis中的每個對象都是由一個RedisObject結構表示,該結構中和保存數據有關的三個屬性分別爲type屬性,encoding屬性,以及ptr屬性 Redis 數據結構(type)有5種,分別爲:字符串(String)列表(Lis

原创 Redis 數據結構字符串底層剖析(簡單動態字符串)

引言 Redis沒有直接使用C語言傳統的字符串表示,而是自己構建了一種名爲簡單動態字符串(simple dynamic string,SDS)的抽象類型,並將SDS用作Redis的默認字符串表示. 在Redis 裏面,C字符串只會作爲字符

原创 HashMap深入理解(源碼,設計原理深入剖析)

哈希表是什麼? 散列表(Hash table,也叫哈希表),是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數叫做散列函數,存放記錄的數組叫

原创 數組與鏈表的區別深入理解

鏈表 鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱爲結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一

原创 從0開始帶你成爲jvm實戰高手(狸貓技術窩)

這個專欄確實很優秀,JVM講得很詳細,甚至很多場景可以直接上生產,適合 初中高級以及 架構 大數據開發者 都可以學習 希望大家尊重作者的知識,購買正版專欄課程,88元並不貴,但收穫的是能陪伴你一生的知識 個人看了第三版的 JVM紙質書籍

原创 spring 循環依賴以及解決方案(吊打面試官)

思考: 什麼是循環依賴? Spring怎麼解決循環依賴 Spring對於循環依賴無法解決的場景 1. 什麼是循環依賴? 循環依賴其實就是循環引用,也就是兩個或則兩個以上的bean互相持有對方,最終形成閉環。比如A依賴於B,B依賴於C,

原创 (zookeeper)ZK和Eureka 區別(CAP 與 設計原理)

  著名的CAP理論指出,一個分佈式系統不可能同時滿足C(一致性)、A(可用性)和P(分區容錯性)。由於分區容錯性在是分佈式系統中必須要保證的,因此我們只能在A和C之間進行權衡。在此Zookeeper保證的是CP, 而Eureka則是AP

原创 分佈式CAP原則與BASE理論

CAP 含義: CAP原則又稱CAP定理,指的是在一個分佈式系統中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區容錯性),三者不可得兼。 一致性(C):在分佈式系統

原创 select poll epoll 區別

理論知識: select,poll,epoll都是IO多路複用的機制。I/O多路複用就通過一種機制,可以監視多個描述符,一旦某個描述符就緒(一般是讀就緒或者寫就緒),能夠通知程序進行相應的讀寫操作。但select,poll,epoll本質