砚知集 知识改变命运

深入解析缓存三大难题:击穿、穿透与雪崩

* 在高并发系统架构中,缓存作为提升性能、减轻数据库压力的核心组件,扮演着至关重要的角色。然而,缓存并非 “万能药”,在实际应用中,常会遭遇缓存击穿、缓存穿透和缓存雪崩三大典型问题。这些问题若处理不当,可能导致数据库瞬间压力激增,甚至引发系统雪崩式崩溃。本文将从定义、场景、危害及解决方案四个维度,对

Administrator Administrator 发布于 2025-09-30

dict 在 Redis ZSet 中的核心作用解析

在 Redis ZSet(有序集合)的 “skiplist + dict” 组合编码中,dict(字典,即哈希表)并非可有可无的辅助结构,而是与 skiplist 相辅相成、缺一不可的核心组件。ZSet 的核心诉求是 “有序性” 与 “唯一性”,skiplist 负责实现 “有序性” 与高效范围操作

Administrator Administrator 发布于 2025-09-19

Redis ZSet 底层实现原理深度解析

在 Redis 的核心数据类型中,ZSet(有序集合)凭借有序性、唯一性的双重特性,成为排行榜、优先级队列、范围查询等场景的核心支撑。与 Set 仅通过 “元素是否存在” 定义集合不同,ZSet 为每个元素(member)绑定一个分数(score),并基于分数实现元素的自动排序。其底层实现同样采用

Administrator Administrator 发布于 2025-09-19

Redis Set 底层实现原理深度解析

在 Redis 的五大基本数据类型中,Set(集合)以其无序性、唯一性的特性,在去重、交集、并集等场景中被广泛应用。不同于表面上简单的 “元素集合” 概念,Redis Set 的底层实现并非单一结构,而是根据存储数据的类型和数量,动态选择intset(整数集合) 或 hashtable(哈希表) 两

Administrator Administrator 发布于 2025-09-19

Redis List的底层数据结构

在 Redis 的五大基础数据类型中,List(列表)凭借其有序、可重复、支持双向访问的特性,成为缓存队列、消息通知、最新数据排行等场景的核心选择。不同于 Java 中的 ArrayList 或 LinkedList,Redis 的 List 并非依赖单一数据结构实现,而是根据存储数据的规模动态切换

Administrator Administrator 发布于 2025-09-16

Redis之Hash的底层实现

在 Redis 的五大基本数据类型中,Hash(哈希)凭借其键值对嵌套存储的特性,成为存储对象类数据的最优选择(如用户信息、商品属性等)。与直接使用 String 存储 JSON 字符串相比,Hash 支持对单个字段的精准操作(如HSET/HGET/HINCRBY),且能有效节省内存空间。要理解 H

Administrator Administrator 发布于 2025-09-16

Redis 过期键重复设置的底层逻辑:从现象到源码的深度解析

在 Redis 日常使用中,我们常会遇到这样的场景:给一个键设置了过期时间后,又在过期前重复设置该键(且不指定过期时间)。这种操作会产生什么效果?是保留原过期时间,还是清除过期时间?本文将从实际现象出发,结合 Redis 源码,彻底揭开这一行为的底层逻辑。 一、直观现象:重复设置键会清除过期时间 先

Administrator Administrator 发布于 2025-09-15

Redis 之 String 底层实现:从设计哲学到性能密码

在 Redis 的五大基本数据类型里,String 类型看似是最朴素的存在,却像基石般支撑着无数核心场景 —— 小到缓存用户 Token、实现分布式锁,大到计数器统计、bitmap 位图操作,几乎所有 Redis 相关的业务都离不开它。 但你知道吗?这个看似 “简单” 的类型,其底层实现藏着 Red

Administrator Administrator 发布于 2025-09-15