Go语言技术文章
-
直接用LPOP或LRANGE处理大列表会阻塞,因其时间复杂度为O(N),在单线程Redis中长时间占用CPU,导致后续请求排队、超时及连接池耗尽。393 收藏 -
本文整理一套 MySQL InnoDB 死锁排查工作流:从应用报错开始,查看 InnoDB 状态,定位锁等待环,统一事务加锁顺序,缩短锁持有时间,并在业务侧加入有限重试保护。392 收藏 -
Host模式下Redis集群初始化失败,因节点默认上报127.0.0.1导致冲突,必须显式配置bind和cluster-announce-ip为宿主机真实IP,并开放客户端端口及对应+10000总线端口。391 收藏 -
数据库 · Redis | 1天前 | Redis · go · Pipeline · 批处理 · 重试 · 幂等性 · 重试 go-redis 幂等键 批量写入 Redis Pipeline 逐条结果
Redis Pipeline 能减少网络往返,却不会把一批命令变成事务。用 go-redis 演示批量写入的部分成功、结果核对、可安全重试的边界,以及如何用幂等键避免重试造成重复副作用。391 收藏 -
数据库 · MySQL | 1个月前 | 执行计划 · MySQL教程 · 慢查询治理 · 索引优化 · 数据库实战 · mysql 执行计划 慢查询 索引优化 MySQL 8 EXPLAIN ANALYZE
从订单慢查询复现出发,讲清 MySQL 8.x EXPLAIN ANALYZE、估算行数与真实行数、loops、Using filesort、复合索引和上线复查。389 收藏 -
从 MySQL Invisible Indexes 入手,讲清如何用不可见索引灰度验证删索引风险,避免直接 DROP INDEX 带来的线上慢查询和回滚成本。388 收藏 -
Redis Functions 从 7.0 开始为服务端逻辑提供了可加载、可复用的库模型,但它不是所有 Lua 脚本的直接替代。本文用请求级脚本调用、FUNCTION LOAD、FCALL 和集群键约束拆出迁移边界。386 收藏 -
数据库 · Redis | 1个月前 | Redis · Streams · 消费者组 · Pending · XACK · 消息堆积 消费者组 XACK XPENDING XAUTOCLAIM Redis Streams
Redis Streams 消费者组如果消费者掉线或处理失败,消息会留在 Pending 列表里,表现为队列越积越多。本文从现象复现、XINFO/XPENDING 检查、认领重试到 XACK 确认,完整排查一次消费堆积问题。385 收藏 -
数据库 · MySQL | 1个月前 | 性能优化 · InnoDB · 生产实践 · MySQL教程 · 数据库运维 · mysql redo log innodb 性能优化 innodb_redo_log_capacity
从 MySQL 8.4 的 innodb_redo_log_capacity 入手,讲清 redo log 容量、检查点压力、写入抖动和崩溃恢复时间之间的取舍,并给出上线检查清单。382 收藏 -
Redis卡顿但命令不慢,主因是系统级资源竞争:CPU中断、NUMA错配、swap抖动、TCP队列溢出、透明大页fork阻塞、磁盘IO毛刺等,需逐项排查验证。381 收藏 -
从手机号后四位和日期函数查询变慢切入,讲清 MySQL 8.x 函数索引、生成列、表达式匹配、EXPLAIN 验证、DDL 风险和上线检查。381 收藏 -
本文用订单列表查询场景,演示普通二级索引为什么需要回表,以及如何通过覆盖索引减少回表,并用 EXPLAIN 的 Extra 验证优化结果。381 收藏 -
单纯靠频率限制无法防住缓存穿透,因其无法识别语义非法请求(如user_id=-1),且分布式攻击下单IP低频可绕过;限流仅作为兜底,需与布隆过滤器、空值缓存等联动,并结合多维特征精准识别恶意请求。380 收藏 -
生产环境必须组合使用RDB和AOF:RDB作冷备快照,AOF负责实时写入;仅用AOF有崩溃导致启动失败、重放慢、数据丢失风险;仅用RDB则丢失窗口大、fork开销高、无法增量修复。379 收藏 -
根本原因是sentineldown-after-milliseconds阈值过短,而主库执行耗时Lua脚本导致PING响应超时,哨兵误判为主观下线;典型表现为INFOreplication正常但日志频繁出现+sdown又快速恢复。378 收藏