Go语言技术文章
-
从零做一个 Redis 慢命令快照小工具,采集 SLOWLOG 样本,解析命令耗时和 Key 线索,按命令类型聚合成 Markdown 报告,用于接口延迟排查和上线前验收。501 收藏 -
用一个带版本号的缓存写入场景,验证 Redis SET 的 GET、KEEPTTL、NX/XX 组合行为,避免更新成功却丢掉原有过期时间。501 收藏 -
数据库 · Redis | 2星期前 | Redis · 消息队列 · Stream · 重试 · redis streams XPENDING XAUTOCLAIM PEL pending JUSTID
Redis Streams 里,XAUTOCLAIM 只负责把空闲消息转交给新消费者,不能替代 XACK,也不会自动清空 PEL。本文用 redis-cli 拆开 JUSTID、XPENDING、XACK 与 XDEL 的边界,给出重试后验收消息是否真正收口的检查路径。501 收藏 -
MySQL 分区表并不是加上 PARTITION BY 就能保留所有唯一约束;分区表达式中的列必须进入每一个唯一键,本文用订单表拆开主键、业务唯一键和建表取舍。501 收藏 -
Redis 选 RDB 还是 AOF,关键不是哪种方式绝对更好,而是业务能接受丢失几秒或几分钟数据。本文按丢失窗口、fsync、恢复速度和备份要求给出 RDB、AOF 与组合策略的选择方法。501 收藏 -
MySQL JSON_TABLE 展开数组时,数组对象缺少某个字段不会自动丢掉整行。为可选字段使用 NULL ON EMPTY,并配合 EXISTS PATH 判断字段是否存在,就能保留行并区分缺失、JSON null 与空字符串。501 收藏 -
Redis AOF 重写时,内存风险主要看 fork 之后的 COW 增长,磁盘风险则要拆成剩余空间、写入吞吐和 fsync 排队。本文用 INFO、MEMORY STATS、df 与 iostat 建立一套可复用的判断清单。501 收藏 -
Redis Stream 的 XTRIM 只限制流中条目,不会自动解决消费组 PEL 积压。本文用 XLEN、XINFO GROUPS、XPENDING 区分问题,并给出 MAXLEN、ACKED、DELREF 的选择方法。501 收藏 -
Redis 客户端缓存开启 CLIENT TRACKING 后,如何确认读过的键能收到失效通知?本文用 RESP3、BCAST、NOLOOP 和 TRACKINGINFO 组成一套可复查的验收流程。500 收藏 -
Redis 线上重启时,RDB 与 AOF 会走不同的恢复路径。本文用一个可复现的 Go 检查程序拆开两种持久化方式的边界,说明如何按数据恢复目标选择配置。500 收藏 -
把老表切到 utf8mb4 后,VARCHAR(255) 的唯一索引可能突然报索引长度超限。本文从 4 字节字符、3072 字节上限和排序规则出发,比较缩短字段、前缀索引、哈希辅助列三种方案,说明如何在不牺牲唯一性判断的前提下完成迁移。499 收藏 -
MySQL 索引不是越多越好。本文用 orders 表演示如何先把候选索引设为 INVISIBLE,再结合 EXPLAIN ANALYZE、慢查询和写入开销验证,确认无误后再删除,并保留可回退路径。499 收藏 -
Redis List 队列要把待办任务可靠地交给消费者,推荐用 LMOVE 原子地从 pending 移入 processing,再用 LREM 确认完成;Redis 6.2+ 还可用 BLMOVE 等待任务。499 收藏 -
Redis 内存碎片率升高不一定代表数据变多。本文从 INFO memory 基线、SCAN 分批扫描、MEMORY USAGE 抽样和大键定位入手,区分数据增长、删除后的 RSS 滞留与分配器复用。499 收藏 -
数据库 · MySQL | 1个月前 | MySQL · sql优化 · 数据库运维 · 性能排查 · MySQL 8.4 SET_VAR optimizer hint sort_buffer_size SQL 性能隔离
MySQL 8.4 的 SET_VAR 优化器提示可以只为一条 SQL 临时调整可用系统变量。本文用报表排序场景说明语法、作用域、可调整变量、EXPLAIN 验收和回退边界,避免为了单条慢查询修改整个实例。497 收藏