08-16 数据库与中间件 分布式锁生产实践:Redis、数据库、ZooKeeper 与 Fencing Token # 分布式锁生产实践:Redis、数据库、ZooKeeper 与 Fencing Token 当多个进程同时修改同一份资源时,单机互斥锁已经无能为力。分布式锁看似只是“抢一个 Key”,实际必须处理租约过期、进程暂停、网络分区、主从切换和重复释放。本文从生产故障边界出发,说明 Redis、数据库和 12 0 0
08-09 数据库与中间件 MySQL 死锁与锁等待超时:现场取证、应急止血和根因修复 # MySQL 死锁与锁等待超时:现场取证、应急止血和根因修复 生产环境出现接口超时、事务回滚或 Deadlock found 时,不要第一时间重启数据库。重启会清空最重要的现场信息,也可能让问题很快复发。正确顺序是:确认影响、保留证据、找到阻塞链、谨慎止血、修复事务设计。 ## 一、先判断是死锁还 5 0 0
08-08 数据库与中间件 MySQL 连接数耗尽:Too many connections 的应急处理与根因分析 Too many connections 表示数据库无法接受新连接。直接提高 max_connections 可能暂时恢复,却会增加内存和并发压力,甚至把连接问题升级为数据库雪崩。 一、确认连接现状 SHOW GLOBAL STATUS LIKE 'Threads_connected'; SHOW 6 0 0
07-25 数据库与中间件 Redis 运维与面试核心:数据结构、过期、持久化、高可用和故障排查 理解 Redis 不能只背“单线程很快”。命令执行模型、I/O 线程、持久化、复制和集群行为会随版本与配置不同,面试和生产排障都应基于实际指标。 ## 数据结构与场景 String 适合缓存、计数和锁值;Hash 适合对象字段;List 适合简单队列但要注意阻塞与内存;Set 用于去重和集合运算;S 7 0 0
07-25 数据库与中间件 Redis Cluster 原理与部署:哈希槽、主从、故障转移和扩缩容 Redis Cluster 将键空间划分为 16384 个 hash slot,并把槽分配给多个主节点。客户端根据 MOVED/ASK 重定向访问正确节点;每个主节点通常配置副本以参与故障转移。 ## 核心概念 键通过 CRC16(key) mod 16384 计算槽。带 hash tag 的键只对 4
07-25 数据库与中间件 MySQL 8.4 运维手册:常用命令、备份与 GTID 复制原理 MySQL 复制不是实时备份。它通过 binary log 把源库事务传到副本并重放,可用于读扩展、故障切换和备份卸载,但误删也会被复制。 ## 常用检查 ```sql SELECT VERSION(); SHOW DATABASES; SHOW PROCESSLIST; SHOW ENGINE I 8 0 0