Go语言技术文章
-
Redis Lua 脚本不要只返回 OK 或空值。本文用固定的状态码与 payload 契约区分业务成功、状态冲突、条件未满足和命令执行错误,并给出 pcall 与 Go 客户端解析的迁移清单。493 收藏 -
结合目标列分布变化、直方图元数据与过滤估算判断重采集时机,给出 MySQL 8.4 查询和维护示例,说明手动、自动更新及刷新后计划不变的原因。493 收藏 -
订单创建时先预占库存,用户超时未支付就需要自动释放。本文用 MySQL 8.0 的事件调度器搭一个小型回收任务,围绕 stock_reservations 表说明状态条件、批量边界、索引和锁的关系,并用可重复的 SQL 验收回收结果。492 收藏 -
MySQL在UPDATE中不支持直接引用自身表的子查询,否则会报“You can't specify target table”错误,而PostgreSQL原生支持UPDATE...FROM,不存在这种限制。不过,两者都要保证关联条件清晰、索引有效,并且建议先用SELECT进行验证。子查询在 UPD492 收藏 -
用 HEX(WEIGHT_STRING(...)) 观察 MySQL 排序规则生成的二进制权重,区分字符字符串与二进制字符串,并掌握 AS CHAR、AS BINARY 的长度边界。492 收藏 -
通过MSET和LMOVE示例说明Redis COMMAND GETKEYS如何从完整命令提取键名,并对比GETKEYSANDFLAGS的用途标志、客户端参数边界与接入注意事项。492 收藏 -
讲清 Redis Cluster 中多 key Lua 的同槽条件:用 hash tag 设计相关 key,正确区分 EVAL 的 KEYS 与 ARGV,并用 CLUSTER KEYSLOT 做发布前检查。491 收藏 -
Redis SORT_RO 的 GET 不是再次执行查询,而是按排序结果中的成员替换键名模式,读取外部对象字段。本文用 order:ids、order:item:* 和 order:weight:* 说明 BY、GET、GET #、LIMIT 以及缺失字段的返回边界。491 收藏 -
只需要多个 Redis 集合的去重总数时,不必先用 SUNION 拉回全部成员。Redis 8.10 的 SUNIONCARD 直接返回并集基数,并可用 LIMIT 或 APPROX 控制统计边界。490 收藏 -
使用 MySQL JSON_TABLE() 配合 $[*] 将 JSON 数组展开为多行,讲清 PATH、FOR ORDINALITY、NESTED PATH、ON EMPTY 和 ON ERROR 的写法与边界。490 收藏 -
Redis ZINCRBY 使用双精度浮点分值,直接累加小数可能出现展示误差。本文用两位小数积分榜演示整数缩放、历史数据修复和上线验收。490 收藏 -
Redis Array 用整数索引保存可稀疏分布的字符串,随机访问不受逻辑长度影响。本文通过 ARSET、ARGET、ARLEN、ARCOUNT 与 ARSCAN 说明建模方式、读取边界和兼容性取舍。490 收藏 -
MySQL 大表使用 LIMIT offset, size 翻到后页时,会先扫描并丢弃大量记录。本文用稳定排序、联合索引和 keyset pagination 改造查询,并说明倒序、重复时间戳和末页的处理方式。490 收藏 -
MySQL GTID_EXECUTED 是事务集合,不是单一整数位点。本文用源端与副本端的 Executed_Gtid_Set、Retrieved_Gtid_Set、GTID_SUBSET 和 GTID_SUBTRACT 判断复制是否推进,并定位仍未应用的事务范围。490 收藏 -
Redis Cluster 的 MOVED 提示槽位路由需要更新,ASK 则用于迁移中的单次请求。本文说明两者区别、ASKING 的连接范围,并用只读命令排查客户端模式、槽位拓扑和重定向目标不可达问题。490 收藏