Go语言技术文章
-
Redis 缓存键如果使用相同 TTL,批量写入后可能在同一时间段集中失效。本文用 Go 示例演示如何加入可控随机抖动,并区分首次回填、刷新和热点保护。460 收藏 -
删除父表记录时突然变慢,先别急着改事务隔离级别。本文从锁等待、子表外键索引和级联删除三个现场信号入手,给出可复现的检查 SQL、修复顺序与回滚边界。458 收藏 -
删除一条订单主表记录时,如果外键触发级联检查,耗时可能来自子表扫描、级联删除和锁等待。本文用 InnoDB 示例拆开索引与锁范围。457 收藏 -
EXPIRE 只能让整个 Redis Hash key 过期,不能单独淘汰某个 field。Redis 7.4.0 起可用 HEXPIRE、HPEXPIRE 设置字段级 TTL;旧版本则应按生命周期拆分 key。456 收藏 -
Redis Functions 升级最容易混淆的是 library name、function name 和 Lua 脚本 SHA1。本文用整库替换、脚本兼容窗口和升级检查表,说明如何保持业务调用名稳定。455 收藏 -
联合索引遇到中间列范围条件后,后列通常不能继续缩小同一个连续扫描区间。本文用键组顺序和 EXPLAIN 说明原因,并给出索引重排判断清单。454 收藏 -
Redis UNLINK 只会先把 key 从键空间摘除,真正的对象释放在后台异步完成。本文用 lazyfree 队列、used_memory、RSS 和 MEMORY STATS 建立删除大键后的内存回收判断方法。454 收藏 -
MySQL 事件已经创建却没有按时执行,通常要分开核对全局调度器、事件自身状态、创建时区和 DEFINER 权限。本文用一个可复查的小项目演示排查顺序,并补上重复触发与错误日志边界。452 收藏 -
MySQL CHECK 写入非法值没报错,通常与 NOT ENFORCED、INSERT IGNORE 或 NULL 导致的 UNKNOWN 有关。本文用建表定义、警告和信息架构查询逐层排查。452 收藏 -
MySQL 遇到 OR 条件时可能选择 Index Merge,但这不代表它一定优于联合索引。本文用订单筛选场景拆开合并扫描、回表、排序与改写边界,给出 EXPLAIN 和 EXPLAIN ANALYZE 的核对方法。451 收藏 -
Redis 分布式锁续期失败时,不能只看异常或单独读取 TTL。本文用唯一令牌、原子脚本和 PTTL 区分锁仍由本客户端持有、已被接管与状态未知,并说明安全释放和业务栅栏边界。451 收藏 -
Redis 7.4 的 HEXPIRE 可以只给 Hash 中指定字段设置过期时间,适合拆分会话或临时属性的生命周期。本文用 HSET、HEXPIRE、HPTTL 和 HGETALL 核对 FIELDS 参数、返回值、版本边界与常见误区。450 收藏 -
Redis Lua 返回数组出现 nil,关键在 Lua table、RESP2/RESP3 与客户端解码的多层映射。本文用最小脚本说明 nil 截断、空回复差异和稳定返回契约的修复方法。448 收藏 -
用 Redis bitmap 按用户和月份记录每日签到,演示 SETBIT、GETBIT、BITCOUNT 的组合,并说明日期偏移、BIT 范围、过期和补签边界。446 收藏 -
MySQL JOIN 报 Illegal mix of collations 时,先核对两列的字符集和排序规则,再用查询级 COLLATE 临时恢复,最后统一字段定义并检查索引与匹配语义。446 收藏