Go语言技术文章
-
MySQL 分区表归档不要直接 DROP PARTITION:先用 INFORMATION_SCHEMA.PARTITIONS 核对边界,再用 EXCHANGE PARTITION 把旧数据换到归档表,最后用校验和回滚演练确认没有误删。483 收藏 -
Redis CONFIG SET 只改变当前进程的生效值,重启后仍可能恢复旧配置。本文用 CONFIG GET、CONFIG REWRITE、文件校验和重启后的再次查询,核对配置路径、权限、默认值、集群节点与回滚边界。204 收藏 -
Redis Sentinel 触发故障转移后,看到某个 Sentinel 报了 SDOWN 并不代表切换已经完成。本文用 ROLE、INFO replication、SENTINEL master 和 switch-master 事件,核对 ODOWN、主节点提升、从节点重挂与应用重连四个结果,给出可回滚的验收清单。356 收藏 -
MySQL 8.4 的 CTE 不一定会生成临时结果集。本文用 EXPLAIN 和 optimizer_switch 判断 CTE 是被合并还是物化,并说明 derived_merge、NO_MERGE 与多次引用的边界。253 收藏 -
MySQL 分区表建好后查询仍然很慢,往往不是分区失效,而是条件没有触发分区裁剪。本文用按月订单表拆解 EXPLAIN PARTITIONS、范围条件和分区键改写的验证方法。310 收藏 -
MySQL 8.4 的 CHECK 约束已经可以真正拦截不满足条件的写入,但约束状态、NULL 三值逻辑和隐式转换会让排查结果与直觉不同。本文用可复现实验核对约束定义、失败写入和历史脏数据清理边界。326 收藏 -
Redis Lua 脚本在单线程执行模型下可能让后续请求排队。本文从接口延迟突然升高的现象出发,用 SLOWLOG、LATENCY 和脚本耗时证据定位阻塞来源,说明超时边界、停止动作与恢复后的反向验证。370 收藏 -
读写分离最容易出问题的地方不是把查询发到副本,而是写后读、事务边界和主副本切换时的会话状态。本文用 MySQL 8.4 的 GTID 等待与路由规则,搭一套可核对、可回切的处理方法。135 收藏 -
MySQL 角色并不等于自动最小权限:默认角色、通配符授权和库级权限叠加后,账号可能读到不该读的数据。本文用实际授权链拆解越权路径,说明 partial revokes 的边界,并给出可回滚、可审计的验收清单。145 收藏 -
数据库 · Redis | 1天前 | Redis · 缓存 · 运维排查 · 过期策略 · PubSub · redis TTL 过期事件 keyspace notification notify-keyspace-events
Redis 监听过期事件时,最常见的问题不是订阅代码,而是 notify-keyspace-events 没有打开 K 或 E、x 标志选错,或者把过期时间归零误当成事件已经发出。本文从配置、频道、TTL 验收和可靠性边界逐步排查。477 收藏 -
Redis ZSET 分页出现漏数据,通常不是 Redis 丢了记录,而是分页游标只保存 score、同分值记录缺少 member 边界,或翻页期间集合发生变化。本文用一组可复现命令拆开排序规则、游标设计和上线检查。189 收藏 -
MySQL 的 wait_timeout 控制非交互连接的空闲回收,但它不能替代连接池的生命周期管理。本文用连接池、会话变量和断线重连三个边界,给出可检查、可回滚的设置方法。420 收藏 -
MySQL REGEXP_LIKE 匹配结果不稳定时,先拆开字符集、排序规则、大小写和反斜杠四个边界。本文给出一套可复现的排查 SQL、修复写法与验收清单。157 收藏 -
用 Redis ZADD 的 NX、GT 与 CH 选项设计可重复执行的排行榜更新流程,处理同分、回退、重复消息和降级查询等常见边界。374 收藏 -
Redis SETNX 只能完成抢锁,不能单独保证安全释放。本文用订单超时任务拆解误删他人锁的竞态,给出带随机令牌的加锁、续期边界与 Lua 原子释放脚本,并用可复查的命令验收。450 收藏