Go语言技术文章
-
Redis Pub/Sub 断线重连不能补发已丢失消息,但可以保存订阅意图,在新连接建立后按快照恢复频道并用订阅回执确认 ready。本文给出 Go 风格实现思路和 Pub/Sub、Streams 的选型边界。309 收藏 -
从数据是否可重建、访问冷热和 TTL 三个维度选择 Redis 内存淘汰策略,并用 INFO 指标验证配置结果。309 收藏 -
Redis 窗口计数限流最容易出错的地方不是 INCR,而是计数键的窗口边界和 TTL 续期方式。本文用 Lua 原子组合 INCR 与首次 EXPIRE,解释固定窗口、滑动窗口和边界突发的取舍。309 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 执行计划 · 索引优化 · 数据库排查 · mysql 不可见索引 Invisible Index optimizer_switch 索引回归
MySQL 的不可见索引适合用来观察“去掉这条索引会怎样”,但它不是删除前的自动回滚按钮。本文以订单查询为例,演示设置不可见、用 optimizer_switch 做单会话影子验证、检查执行计划和恢复可见性的边界。308 收藏 -
Redis OBJECT ENCODING 只告诉你 key 当前采用的内部布局。本文用 listpack、hashtable 和 quicklist 说明编码变化的触发条件,并给出结合 MEMORY USAGE 与延迟数据判断真实性能影响的方法。308 收藏 -
从并列排序值、默认 frame 和显式边界入手,说明 MySQL window frame 中 ROWS 与 RANGE 的区别,并给出逐笔累计、按日期累计和范围统计的选择方法。308 收藏 -
MySQL 切换事务隔离级别后查询结果仍不变,通常是当前事务已经建立了快照,或切换只作用于下一事务。本文用两个会话说明 REPEATABLE READ、READ COMMITTED、自动提交和锁定读的边界。307 收藏 -
数据库 · MySQL | 6天前 | MySQL · 数据库 · csv · 数据导入 · CSV导入 MySQL LOAD DATA LOAD DATA LOCAL INFILE MySQL批量导入
MySQL LOAD DATA 读取 CSV 时,关键不是只写一条 SQL,而是对齐文件位置、字符集、分隔符、引号、换行符和目标列。本文给出 LOCAL 与非 LOCAL 的选择、列映射、清洗和结果核对方法。307 收藏 -
MySQL InnoDB 中普通 SELECT、UPDATE、FOR SHARE 与 FOR UPDATE 使用的读视图不同。本文通过事务快照、当前版本和锁定动作,给出查询与并发修改的选择方法。306 收藏 -
MySQL 直方图默认采用手动更新模式。批量导入删除、数据倾斜迁移、执行计划估算明显偏离或迁移恢复后应优先评估更新;MySQL 8.4 可启用 AUTO UPDATE,但仍需理解触发边界。306 收藏 -
Redis 7.4 起可以让哈希字段单独过期,但标准 keyevent 通知只告诉你哈希键名。本文给出 hexpired 订阅、Redis 8.8+ 字段级通知以及断线和集群恢复的设计方法。306 收藏 -
Redis GETDEL 将读取字符串值和删除键放在一条命令中,适合单键无条件的一次性消费。本文说明 Go 调用、未命中、类型错误以及需要条件或跨键原子性时的替代边界。306 收藏 -
MySQL 字符串列完整建索引过宽时,可以用前缀索引缩小索引体积,但长度不能凭感觉填写。本文用区分度查询选择候选长度,再结合字符集、字节上限、SHOW INDEX、EXPLAIN 和 ORDER BY 边界完成验证。305 收藏 -
Redis Pipeline 出现单条错误时,不要只看批次级 Exec 返回值。本文用 go-redis 示例说明如何按命令下标定位失败项,区分 WRONGTYPE、redis.Nil 与连接错误,并判断何时需要 TxPipeline。305 收藏 -
Redis SCAN 即使带了 MATCH 和 COUNT,也可能在一次完整迭代中返回重复键。原因是 SCAN 只保存游标,MATCH 负责过滤,COUNT 只是工作量提示;应用侧应使用幂等操作或按需去重,并检查遍历期间的数据变化。305 收藏