原创 詳解 Redis 內存管理機制和實現

Redis是一個基於內存的鍵值數據庫,其內存管理是非常重要的。本文內存管理的內容包括:過期鍵的懶性刪除和過期刪除以及內存溢出控制策略。 最大內存限制 Redis使用 maxmemory 參數限制最大可用內存,默認值爲0,表示無限制。限制內存

原创 一文了解 Redis 內存監控和內存消耗

Redis 是一種內存數據庫,將數據保存在內存中,讀寫效率要比傳統的將數據保存在磁盤上的數據庫要快很多。所以,監控 Redis 的內存消耗並瞭解 Redis 內存模型對高效並長期穩定使用 Redis 至關重要。 內存使用統計 通過 inf

原创 Redis 複製過程詳解

Redis 的複製功能分爲同步( sync )和命令傳播( command propagate )兩個步驟: 同步用於將從服務器的數據庫狀態更新至主服務器當前所處的數據庫狀態。 命令傳播則用於在主服務器的數據庫狀態被修改,導致主從服務器的

原创 編程小技巧之 Linux 文本處理命令

合格的程序員都善於使用工具,正所謂君子性非異也,善假於物也。合理的利用 Linux 的命令行工具,可以提高我們的工作效率。 本文簡單的介紹三個能使用 Linux 文本處理命令的場景,給大家開闊一下思路。希望大家閱讀完這篇文章之後,要多加實踐

原创 Redis 事件機制詳解

Redis 採用事件驅動機制來處理大量的網絡IO。它並沒有使用 libevent 或者 libev 這樣的成熟開源方案,而是自己實現一個非常簡潔的事件驅動庫 ae_event。 Redis中的事件驅動庫只關注網絡IO,以及定時器。該事件庫處

原创 Redis AOF 持久化詳解

Redis 是一種內存數據庫,將數據保存在內存中,讀寫效率要比傳統的將數據保存在磁盤上的數據庫要快很多。但是一旦進程退出,Redis 的數據就會丟失。 爲了解決這個問題,Redis 提供了 RDB 和 AOF 兩種持久化方案,將內存中的數據

原创 用戶日活月活怎麼統計 - Redis HyperLogLog 詳解

HyperLogLog 是一種概率數據結構,用來估算數據的基數。數據集可以是網站訪客的 IP 地址,E-mail 郵箱或者用戶 ID。 基數就是指一個集合中不同值的數目,比如 a, b, c, d 的基數就是 4,a, b, c, d, a

原创 分佈式數據緩存中的一致性哈希算法

一致性哈希算法在分佈式緩存領域的 MemCached,負載均衡領域的 Nginx 以及各類 RPC 框架中都有廣泛的應用,它主要是爲了解決傳統哈希函數添加哈希表槽位數後要將關鍵字重新映射的問題。 本文會介紹一致性哈希算法的原理及其實現,並給

原创 基於Redis和Lua的分佈式限流

 Java單機限流可以使用AtomicInteger,RateLimiter或Semaphore來實現,但是上述方案都不支持集羣限流。集羣限流的應用場景有兩個,一個是網關,常用的方案有Nginx限流和Spring Cloud Gateway

原创 Spring AOP(三) Advisor類架構

 Spring AOP是Spring的兩大基石之一,不瞭解其基礎概念的同學可以查看這兩篇文章AOP基本概念和修飾者模式和JDK Proxy。 如果從代碼執行角度來看,Spring AOP的執行過程分爲四大步驟: 步驟一:Spring框架生

原创 Spring AOP(二) 修飾者模式和JDK Proxy

 在上邊一篇文章中我們介紹了Spring AOP的基本概念,今天我們就來學習一下與AOP實現相關的修飾者模式和Java Proxy相關的原理,爲之後源碼分析打下基礎。 修飾者模式  Java設計模式中的修飾者模式能動態地給目標對象增加額外的

原创 Spring AOP(一) AOP基本概念

 Spring框架自誕生之日就拯救我等程序員於水火之中,它有兩大法寶,一個是IoC控制反轉,另一個便是AOP面向切面編程。今日我們就來破一下它的AOP法寶,以便以後也能自由使出一手AOP大法。  AOP全名Aspect-oriented p

原创 AbstractQueuedSynchronizer超詳細原理解析

 今天我們來研究學習一下AbstractQueuedSynchronizer類的相關原理,java.util.concurrent包中很多類都依賴於這個類所提供隊列式同步器,比如說常用的ReentranLock,Semaphore和Coun

原创 MySQL探祕(八):InnoDB的事務

 事務是數據庫最爲重要的機制之一,凡是使用過數據庫的人,都瞭解數據庫的事務機制,也對ACID四個基本特性如數家珍。但是聊起事務或者ACID的底層實現原理,往往言之不詳,不明所以。所以,今天我們就一起來分析和探討InnoDB的事務機制,希望能

原创 MySQL探祕(六):InnoDB一致性非鎖定讀

 一致性非鎖定讀(consistent nonlocking read)是指InnoDB存儲引擎通過多版本控制(MVVC)讀取當前數據庫中行數據的方式。如果讀取的行正在執行DELETE或UPDATE操作,這時讀取操作不會因此去等待行上鎖的釋