知其然,知其所以然
Redis 2026-09-25

Redis 内存碎片

本机真实插入20万个key(used_memory 71.46MB,碎片率1.14健康),再真实交替删除其中10万个:used_memory真实降到37.47MB,但used_memory_rss真实纹丝不动(还涨了一点),碎片率真实飙到2.07。

Redis 真实验证 动画演示
Redis 2026-09-25

OBJECT ENCODING 观察编码变化

本机真实验证编码转换检查只在写操作时触发:把hash-max-listpack-entries从512调到5之后,一个已有20个字段的hash真实继续保持listpack不变,一次HGET(读)也不触发转换,直到一次HSET(写)才真实立刻变成hashtable。

Redis 真实验证 动画演示
Python 2026-09-25

list 底层扩容:为什么 append 通常是 O(1)

本机真实用sys.getsizeof追踪list每次真实扩容的元素数,发现扩容点是1、5、9、17、25...(超额分配),append 10万次真实只要0.0039秒,而insert(0,x) 10万次真实要2.37秒,差了608倍。

Python 真实验证 动画演示
Python 2026-09-25

set 底层实现:哈希冲突和删除标记怎么处理

本机真实验证set删除990/1000个元素后内部表大小完全不变,真实构造5个哈希值相同但值不同的对象证明冲突不丢数据,再真实测出全冲突场景下查找慢了约2000倍。

Python 真实验证 动画演示
Python 2026-09-25

小整数缓存与字符串驻留:is 为什么有时看起来等于 ==

本机真实用函数调用避开编译期常量折叠,验证运行期算出的100(在-5~256区间内) is 字面量100为True,而运行期算出的1000(超出区间) is 字面量1000为False——精确验证小整数缓存的真实边界。

Python 真实验证 动画演示
Python 2026-09-25

浅拷贝与深拷贝:deepcopy 到底复制了什么

本机真实用嵌套列表验证:修改原始对象的内层列表,浅拷贝真实跟着一起变了,深拷贝真实完全不受影响——用id()真实确认浅拷贝的内层元素跟原对象是同一个对象。

Python 真实验证 动画演示
Python 2026-09-25

闭包与自由变量:函数为什么能记住外部变量

本机真实复现循环创建闭包的经典陷阱:3个lambda真实全部返回2而不是期望的0,1,2,用__closure__真实看到底层的cell对象,再验证用默认参数在定义时真实绑定值能修复这个问题。

Python 真实验证 动画演示
Python 2026-09-25

可变默认参数:为什么 def f(x=[]) 会留下历史数据

本机真实连续三次调用append_to(item)不传target,验证默认列表真实在调用之间被共享,第二次调用真实带着第一次的历史数据;用id()和__defaults__真实确认背后是同一个对象。

Python 真实验证 动画演示
Python 2026-09-25

__slots__:减少对象内存占用的代价

本机真实用tracemalloc测10万个实例的总内存:没有__slots__真实占12.20MB,有__slots__真实只要8.38MB,省了约31%;但单个实例的sys.getsizeof真实显示两者一样,揭示了getsizeof真实的局限。

Python 真实验证 动画演示
Python 2026-09-25

MRO 与 C3 线性化:多继承时 Python 如何决定方法顺序

本机真实构造一个菱形继承D(B,C),验证D.__mro__真实是[D,B,C,A,object],交换成E(C,B)后MRO真实跟着整体翻转;再真实构造一个无法线性化的继承关系,验证Python真实会直接报TypeError拒绝创建这个类。

Python 真实验证 动画演示
Python 2026-09-25

super():它为什么不一定调用"父类方法"

本机真实构造D(B,C)菱形继承,验证B.greet()里的super().greet()真实调用到的是C.greet()而不是A——B在类定义上唯一声明的父类是A,但super()真实按MRO顺序走,B的下一个真实是C,不是A。

Python 真实验证 动画演示
Redis 2026-09-25

DEL、UNLINK、异步释放

本机真实建一个423MB、500万字段的大hash,真实测DEL耗时0.85秒、UNLINK只要0.0002秒;更关键的是真实测出DEL期间并发PING被真实卡住819毫秒,UNLINK期间只有0.81毫秒——差了1000倍。

Redis 真实验证 动画演示
京ICP备2026067502号-1京公网安备11010502063487号