Go语言技术文章
-
Redis BigKeys 排查可以先用 SCAN 增量发现,再用 MEMORY USAGE 按字节估算,最后按风险和固定批次处理;本文说明 SAMPLES、COUNT 与 UNLINK 的边界。188 收藏 -
用 Redis SET NX EX 原子创建带过期时间的分布式锁,配合唯一 token 和 Lua 原子释放,避免锁永久残留或误删其他实例的新锁。186 收藏 -
MySQL 按分组取每组最新记录时,先用 ROW_NUMBER() 在 PARTITION BY 分组内按时间倒序编号,再由外层筛选 rn=1。本文说明稳定排序、并列时间、分组粒度、过滤边界和索引复核方法。185 收藏 -
用 InnoDB 短事务配合 SELECT ... FOR UPDATE SKIP LOCKED,让多个消费者跳过已锁任务并安全更新状态,同时说明索引、空队列、长任务和异常恢复边界。184 收藏 -
Redis ZREVRANK 默认按分数从高到低返回成员排名,WITHSCORE 可在同一次读取中带回分数。本文用一个排行榜示例核对并列分数、缺失成员和边界排名,避免把返回的零值误判成异常。183 收藏 -
金额字段优先使用 DECIMAL,但 DECIMAL(10,2) 不是万能答案。本文用 M、D、整数位和 SQL mode 拆解字段范围,给出建表与边界检查示例,帮助你按业务上限选择精度和小数位。183 收藏 -
Redis Pipeline 不是批次越大越快。本文从 RTT、回复队列和单批延迟三个角度,给出可落地的批量窗口设计与 Go 实现。181 收藏 -
用一个订单、商品和批次的 JSON 示例,说明 MySQL JSON_TABLE 的 NESTED PATH 相对路径、空数组补 NULL、类型处理和重复行排查方法。181 收藏 -
用 MySQL 8.4 EXPLAIN ANALYZE 对齐 rows、actual rows 和 loops,判断估算偏差、统计信息与慢查询热点。181 收藏 -
Redis OBJECT FREQ 能读取 LFU 模式下对象的对数访问频率,但它不是全局热点榜单。本文从 OBJECT FREQ 与 OBJECT ENCODING 的分工讲起,再用 INFO stats 和 maxmemory-policy 验证采样结果,说明什么时候可以据此调整缓存淘汰策略。178 收藏 -
MySQL 按天统计时,直接按业务表分组会丢掉没有记录的日期。本文用 WITH RECURSIVE 生成日期序列,再 LEFT JOIN 订单数据并用 COALESCE 补 0,同时处理时间索引和递归上限。177 收藏 -
对比 Redis Lua EVAL/EVALSHA 与 Redis 7+ Functions 的生命周期、配置方式和排查路径,处理 NOSCRIPT、函数注册、CROSSSLOT 与 BUSY 等常见问题。177 收藏 -
Redis 在生成 RDB 快照时可能因 fork 和写时复制出现延迟抖动。本文从慢查询时间线、INFO persistence 指标和内存峰值入手,给出判断、避让与回滚方法。176 收藏 -
MySQL 计算相邻记录时间差的通用写法:先用 LAG() 取上一条时间,再用 TIMESTAMPDIFF() 计算秒或分钟,并处理分组、首行、并列时间和 NULL。176 收藏 -
批量 UPDATE 不要只加 LIMIT:用可推进的索引范围固定每批数据,缩短事务锁持有时间,并为失败重试保留清晰边界。173 收藏