Go语言技术文章
-
连接池复用能减少建连开销,但空闲连接可能已经失效。本文用 Redis PING 和 redis-py 示例说明健康检查、失效连接隔离、连接重建与业务重试的边界。387 收藏 -
通过订单累计示例解释 MySQL 窗口函数 ROWS 与 RANGE 的边界差异,定位并列排序值、默认帧、NULL 和类型限制导致的结果异常。387 收藏 -
Redis Functions 从 7.0 开始为服务端逻辑提供了可加载、可复用的库模型,但它不是所有 Lua 脚本的直接替代。本文用请求级脚本调用、FUNCTION LOAD、FCALL 和集群键约束拆出迁移边界。386 收藏 -
从原子操作、脚本发布、集群路由和故障回退几个边界比较 Redis Lua 脚本与 Functions,给出可落地的选择和验收方法。385 收藏 -
MySQL 组合索引不是把高选择性列简单排在最前面,而要先看等值条件、范围条件和排序的连续性。本文用列表查询说明索引列顺序、函数表达式、filesort 与回表如何一起判断。385 收藏 -
MySQL InnoDB 默认 REPEATABLE READ 下,普通 SELECT 读取的是事务快照。本文用两个会话说明新提交为何暂时不可见,以及如何选择 COMMIT、READ COMMITTED 或 FOR SHARE。385 收藏 -
MySQL 的 TIMESTAMP 会按连接时区与 UTC 做转换,DATETIME 则保存字面上的日期时间。本文从瞬时事件、预约时间、连接会话和 2038 年范围几个边界出发,整理跨时区业务的选型和检查方法。384 收藏 -
一次报表临时表误清空事故,带你看清 MySQL 中 TRUNCATE TABLE 的隐式提交边界、为什么 ROLLBACK 救不回来,以及线上清理表数据时怎样保留可回退窗口。382 收藏 -
Redis Streams 使用 XREADGROUP 时,空结果不一定代表没有消息。本文从 BLOCK 超时、已确认消息和 XPENDING 消费者状态三条线核对消息是否真正读到,并给出可复查的命令与边界。382 收藏 -
Redis LPOS 查找列表元素时,负数 RANK、List 下标和空结果容易混淆。本文用重复通知场景拆解从尾部定位、扫描边界与应用侧验收。381 收藏 -
MySQL 8.4 中,RANGE 和 ROWS 看起来只差一个单词,却会在同分值、时间范围和滚动统计中产生不同结果。通过订单金额累计和 7 天滑动平均两个例子,定位默认窗口边界并给出验收方法。380 收藏 -
数据库 · Redis | 6天前 | Redis · 故障恢复 · Streams · 消费者组 · 消息重试 · redis 消费者组 XPENDING XAUTOCLAIM Redis Streams
Redis Streams 消费者异常退出后,消息会留在 PEL 中。先用 XPENDING 观察归属、空闲时间和投递次数,再用 XAUTOCLAIM 接管超时消息,处理成功后用 XACK 完成闭环。380 收藏 -
MySQL 用 SUM OVER 计算累计值时,如果希望每个月重新开始,关键不是给 SUM 加条件,而是把包含年份的月份键放进 PARTITION BY,并用稳定的时间与主键排序。本文给出可直接改写的 SQL 和排查清单。380 收藏 -
Redis Functions 会把 Lua 逻辑作为函数库保存。本文用一个订单状态校验函数说明 FUNCTION LOAD、REPLACE、FUNCTION LIST 和 FUNCTION DELETE 的切换边界,给出发布前验收与失败回滚顺序。379 收藏 -
Redis Lua 返回 RESP3 map 时,客户端是否拿到字典取决于脚本内部的 redis.setresp(3) 与连接侧的 HELLO 3 是否分别配置正确。本文拆开两层协议,说明 RESP2 为何会把 map 展平成交替键值数组,并给出客户端解析检查表。379 收藏