Go语言技术文章
-
MySQL 可用 JSON_OVERLAPS 判断两个 JSON 数组是否至少共享一个元素。本文以标签筛选说明数字与字符串、嵌套数组、SQL NULL 和空数组的区别,并给出只读 SQL 示例与查询回退思路。498 收藏 -
MySQL JSON_TABLE 展开数组后出现重复行,先检查行路径是否过宽,再用父表主键和各层 FOR ORDINALITY 组成稳定关联键。本文用订单与嵌套数组示例区分真实重复、路径问题和后续 JOIN 造成的重复。406 收藏 -
MySQL 使用 LAG 比较相邻记录时,分组首行没有上一条记录,默认返回 NULL。本文说明如何固定窗口顺序、使用 default,并区分真实 NULL 与首行缺失。303 收藏 -
MySQL 窗口函数取每组最新记录时,不能只按时间排序;应使用 PARTITION BY 划分分组,在窗口 ORDER BY 中用时间和唯一键组成稳定排序,再根据是否允许并列选择 ROW_NUMBER、RANK 或 DENSE_RANK。265 收藏 -
Redis RDB 适合紧凑快照和快速重启,AOF 更接近实时写入恢复。本文围绕数据安全、AOF 重写、RDB 备份和恢复窗口,说明何时采用两者组合。157 收藏 -
Redis Sentinel认证需区分数据连接、复制、监控和发现入口,本文用配置对应表说明凭据一致性、角色切换准备和错误定位,避免只改一个密码造成连接中断。393 收藏 -
Redis SCAN 不是固定页大小的分页接口。本文说明游标推进、空页判断、MATCH/COUNT 边界,以及重复 key 的去重和幂等处理方案。113 收藏 -
Redis Query Engine 为 JSON 建索引时,关键不是把整个对象塞进 schema,而是把 JSONPath 叶子值按查询任务映射为 TEXT、TAG 或 NUMERIC,并用别名稳定查询字段。本文给出字段设计、排序和排查方法。137 收藏 -
Redis 反复刷新缓存 TTL 时,普通 EXPIRE 可能把更长的剩余时间覆盖掉。本文按首次设置、只延长和只缩短等业务意图,说明 NX、XX、GT、LT 的选择和复查方式。207 收藏 -
Redis Cluster 容量规划不能只看节点内存,还要同时看 16384 个槽位的覆盖情况、主节点槽位分布和热点槽位键数。本文用 redis-cli 与 Python 组织一套可复查的统计方法,说明哪些指标能帮助规划,哪些结论不能直接推出。137 收藏 -
Redis MULTI/EXEC 会把命令串行执行,但不会像关系型数据库一样在运行期错误后自动回滚。本文从错误边界、WATCH 前置检查、幂等状态和补偿记录四个方面设计可重试的业务处理方案。158 收藏 -
Redis Pipeline 通过批量发送命令减少网络往返,但批次过大也会增加回复队列、客户端内存和重试成本。本文给出批大小、错误分类与读后写依赖的处理方法。321 收藏 -
Redis Lua 可把库存判断与扣减封装为单次原子执行。本文给出 KEYS、ARGV 参数契约和单键脚本,说明整数范围、写入前检查、脚本耗时及超时重试的限制。253 收藏 -
Redis ACL 可以用命令类别、单项排除和键模式限制应用账号权限。本文说明如何创建并复查最小权限用户。115 收藏 -
Redis Cluster 多 key 操作应让真正需要协同的 key 共享 hash tag,从而落到同一槽位;标签过粗又会造成单槽热点。本文说明 key 设计、CLUSTER KEYSLOT 检查和热点规避。246 收藏