Go语言技术文章
-
Redis WATCH 事务竞争失败时,正确做法不是盲目重发,而是重新读取最新值后有限重试。本文用 Go go-redis/v9 拆解竞争窗口、TxFailedErr、退避和错误边界。143 收藏 -
解释Cluster原生MGET的同槽限制,区分槽和节点、普通前缀与哈希标签,给出同槽命令和客户端非原子读取示例,并说明结果顺序、热点和失败语义。143 收藏 -
MySQL 复制延迟应按通道区分接收、协调与工作线程。本文组织只读状态报告,给出错误与事务进度查询、线程关联写法,说明 Seconds_Behind_Source 的限制及分层处理方向。141 收藏 -
MySQL 时间范围查询没有用上索引,通常要从时间列是否被函数包裹、EXPLAIN 计划、复合索引顺序和优化器成本判断。本文用 DATETIME 半开区间给出排查与修复方法。139 收藏 -
介绍 MySQL InnoDB 中用 CAST(... AS ... ARRAY) 为 JSON 数组建立 multi-valued index 的写法,说明 MEMBER OF、JSON_CONTAINS、JSON_OVERLAPS 的适用条件,以及空数组、排序、覆盖索引和在线创建等边界。139 收藏 -
Redis TDIGEST.TRIMMED_MEAN 用两个分位点定义保留区间,排除两端观测值后,从 TDigest 摘要中估算区间内均值。本文用 0.05 到 0.95 的例子解释参数顺序、估算性质、O(N) 成本和常见错误。137 收藏 -
Redis Pub/Sub 适合在线订阅者都能即时收到、允许离线丢失的广播;Redis Streams 适合需要留痕、回放、消费组分工和确认的消息。本文从触发信号、持久化边界、故障处理和告警复盘给出选型方法。135 收藏 -
MySQL 窗口函数的执行计划要从 EXPLAIN FORMAT=JSON 的 windowing 节点读起。本文用累计金额示例核对分区、排序和 frame,并解释 using_filesort、临时表与缓冲字段的排查边界。130 收藏 -
用 MySQL GET_LOCK 给同一任务建立单实例执行入口,掌握返回值、连接生命周期、显式释放和占用排查方法。127 收藏 -
MySQL 用 ROW_NUMBER 取每组最新记录时,关键不是只写一个倒序,而是先用 PARTITION BY 划分分组,再用稳定的 ORDER BY 排名,最后在外层筛选 rn=1。本文还说明并列时间戳、过滤条件和 RANK 选择等边界。123 收藏 -
MySQL 直方图用列值分布辅助选择性估算,不等于索引。通过累积频率算例和 SQL,解释 ANALYZE TABLE、采样、rows 与 filtered,以及统计更新的适用边界。122 收藏 -
MySQL 降序索引不是给 ORDER BY DESC 随手加一个关键字就能生效。本文从 InnoDB 联合索引、WHERE 等值条件、混合 ASC/DESC 排序和 EXPLAIN 判断入手,说明怎样减少 filesort,以及哪些场景仍会反向扫描或无法使用降序索引。121 收藏 -
Redis 写入后再执行 EXPIRE 会留下异常窗口。本文用 SET NX EX 把不存在条件、值和过期时间放进一条命令,并说明 OK、空返回、TTL、PX 与 KEEPTTL 的边界。117 收藏 -
Redis COPY 可以把一个键的值复制到当前或指定逻辑数据库;目标键已存在时默认返回 0,使用 REPLACE 才会覆盖。本文用 redis-cli 说明 DB、REPLACE、返回值、TTL 和集群哈希槽边界。108 收藏 -
Redis Hash 多字段读取可用 HMGET,Redis 8.0 起还可用 HGETEX 同时设置所选字段 TTL。对照整键 EXPIRE、字段过期、版本兼容与续期副作用,说明如何按缓存生命周期选择。104 收藏