Go语言技术文章
-
MySQL TO_BASE64 会在每 76 个编码字符后加入换行,FROM_BASE64 解码时会忽略换行等空白。本文说明 JSON、CSV 和自定义文本交换时怎样区分保留、转义与清理,避免把格式差异误判为数据损坏。209 收藏 -
MySQL FROM_BASE64 会忽略换行、回车、制表符和普通空格,但返回值仍是二进制字符串。本文说明何时可以直接解码、何时需要规范化输入,以及 NULL、非法字符和 URL-safe Base64 的处理边界。369 收藏 -
MySQL MAKE_SET 按位掩码与标签位置生成逗号字符串。通过通知渠道示例说明查询写法、零值与缺失值、NULL占位和未知位处理,避免调整参数顺序改变历史数据含义。281 收藏 -
MySQL EXPORT_SET 可以按低位到高位展开整数位掩码,但一次调用只能共用一组 on/off 文本。本文用按位与拆出单个位,再组合成缓存、审计、通知等不同标签,并说明分隔符、位数和边界值。400 收藏 -
说明 MySQL JSON_DEPTH 对标量、空容器以及对象和数组混合结构的嵌套层数计算方式,并区分最深路径、NULL 与非法 JSON。393 收藏 -
MySQL JSON_STORAGE_SIZE 统计的是解析后的二进制 JSON 表示,不是 JSON 文本字符数或字节数。本文用对比查询和部分更新示例说明三种长度的差异,并给出 JSON_STORAGE_FREE 的排查方法。164 收藏 -
Redis Functions 不是每次请求都重新发送的临时脚本,而是先把带库名和注册函数的 Lua 库加载到 Redis,再用 FCALL 按函数名重复调用。本文用一个最小库说明 FUNCTION LOAD、REPLACE、numkeys 与常见加载边界。325 收藏 -
Redis SETRANGE 超出原字符串长度会填充零字节。通过小偏移示例理解字节区间、UTF-8 偏移与扩容代价,并说明如何限制写入范围、选择合适的数据模型。397 收藏 -
Redis EXPIRE 的 NX 只在键没有过期时间时设置,XX 只在已有过期时间时更新。掌握键不存在、持久键和已有 TTL 的返回值边界,就能避免初始化或续期时覆盖原有过期策略。342 收藏 -
Redis WAIT 可以等待当前连接此前写入被指定数量副本确认,并返回实际确认数。本文从副本确认延迟、numreplicas 与毫秒超时入手,说明结果判断、性能观测和不等同强一致的边界。331 收藏 -
Redis STRLEN 返回的是字符串值的 UTF-8 字节长度,不是中文字符数。本文用 ASCII、中文、空字符串和缺失键对照说明返回 0 的边界,并给出客户端解码计数的处理方案。348 收藏 -
Redis 删除大列表、哈希或集合时,DEL 可能在主线程同步完成大量释放工作。本文比较 DEL 与 UNLINK 的删除成本、返回值和异步回收边界,说明什么时候用 UNLINK 更稳妥。275 收藏 -
Redis SCAN 可配合 MATCH 和 COUNT 分批扫描业务键,但空批次不代表结束,COUNT 也不是页大小。本文给出只读游标循环,说明重复键、并发变化、中断状态及扫描范围的处理方式。168 收藏 -
Redis XADD 的 LIMIT 不是 Stream 的最终长度限制,而是配合 MAXLEN 或 MINID 裁剪时控制单次工作量的参数。本文说明 ~、LIMIT、精确裁剪和 count 取值的关系。371 收藏 -
Redis XGROUP SETID 修改的是消费组的 last-delivered-ID,而不是单个消费者的私有游标。本文说明 0-0、$ 和指定消息 ID 的区别,并梳理新消费者用 > 读取时与已有 PEL、XACK 及 ENTRIESREAD 的边界。154 收藏