Go语言技术文章
-
Redis UNLINK 只会先把 key 从键空间摘除,真正的对象释放在后台异步完成。本文用 lazyfree 队列、used_memory、RSS 和 MEMORY STATS 建立删除大键后的内存回收判断方法。454 收藏 -
Redis COPY 的 REPLACE 会整体替换已存在的目标 key,而不是合并字段。本文用返回值、对象边界、TTL、复杂度和集群槽位说明如何安全判断复制结果。325 收藏 -
MySQL CHECK 写入非法值没报错,通常与 NOT ENFORCED、INSERT IGNORE 或 NULL 导致的 UNKNOWN 有关。本文用建表定义、警告和信息架构查询逐层排查。452 收藏 -
Redis EXPIRE 的 NX 只在 key 没有过期时间时设置 TTL,XX 只在 key 已有过期时间时设置 TTL。本文用 TTL、返回值和 redis-cli 示例说明两者的选择边界。153 收藏 -
讲清 MySQL EXISTS、IN、NOT IN 遇到 NULL 时的三值逻辑差异,并给出 IS NOT NULL 与 NOT EXISTS 的安全写法。425 收藏 -
Redis 写入缓存时用 SET 的 EX 或 PX 同步设置值和 TTL,读取并续期时用 GETEX,避免 GET、SET、EXPIRE 拆分造成竞态;本文还区分单命令原子性与多步业务条件。303 收藏 -
MySQL GROUP_CONCAT 的稳定结果取决于函数内部的 ORDER BY、文本 COLLATE、并列键和长度上限。本文用标签聚合示例说明排序、去重、NULL、分隔符与 group_concat_max_len 的实际边界。488 收藏 -
Redis LPOS 的 rank 决定从头部还是尾部计数,maxlen 决定最多比较多少个列表元素;两者组合时,返回位置仍是原列表的零基索引。156 收藏 -
MySQL 的 COUNT(DISTINCT) 只统计非 NULL 唯一值。本文用订单示例区分已知客户数、缺失行数和包含 NULL 桶的唯一值数量,并给出分组统计与子查询写法。232 收藏 -
BLMOVE 阻塞超时不会移动任何元素,因此不需要回滚。真正需要补偿的是任务已经进入 processing 后业务失败或 worker 崩溃的场景。本文用 ready、processing、ack 和重试边界设计可靠队列。111 收藏 -
开启 ONLY_FULL_GROUP_BY 后,查询中的非聚合列必须出现在 GROUP BY 中,或能由分组列唯一确定。本文用主键、唯一键、单值过滤、ANY_VALUE 和派生表几个场景,说明如何改写查询并保持结果语义明确。440 收藏 -
Redis Client Tracking 不发失效通知时,重点检查物理连接、RESP2/RESP3 通知模型、REDIRECT 目标、跟踪模式和连接重连。439 收藏 -
MySQL 字符串比较结果异常时,按连接、列和表达式三层定位 collation,再用查询级 COLLATE 或列级配置完成修复。326 收藏 -
Redis Cluster 的多键命令要求相关键位于同一 hash slot。本文用 hash tag 设计键名,再用 CLUSTER KEYSLOT 排查空标签、嵌套花括号和模板不一致等问题。358 收藏 -
MySQL Instant DDL 不是全局开关。本文用 ALGORITHM=INSTANT、InnoDB 元数据和 TOTAL_ROW_VERSIONS 排查表结构限制,并说明何时改用 INPLACE 或 COPY。486 收藏