Go语言技术文章
-
Redis ZSet 适合按时间分拣延迟任务,但先用 ZRANGEBYSCORE 读取、再用 ZREM 删除会留下并发抢占窗口。本文从两个 worker 同时取到同一 job_id 的现场出发,说明如何用 Lua 把筛选与删除放进一次原子操作,并保留重复执行与故障恢复边界。192 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 事务 · 并发控制 · InnoDB · READ COMMITTED MySQL一致性读 当前读 快照读 REPEATABLE READ FOR UPDATE
用两个事务的可复现实验解释 MySQL InnoDB 快照读为什么看不到另一个事务刚提交的数据,并对比 REPEATABLE READ、READ COMMITTED 与 SELECT ... FOR UPDATE 的适用边界。207 收藏 -
MySQL 8.4 RESOURCE GROUP 可以把后台批处理会话放入独立资源组,通过 VCPU、THREAD_PRIORITY 和 SET RESOURCE GROUP 限制其对前台查询的影响。本文用一个可回滚的示例说明创建、绑定、核验与平台边界。349 收藏 -
用 Redis HINCRBY 为哈希字段做原子计数,验证键和字段不存在时的初始化行为,并处理非整数值与 64 位整数边界。351 收藏 -
Redis 7.4 的 HEXPIRE 可以只给 Hash 中指定字段设置过期时间,适合拆分会话或临时属性的生命周期。本文用 HSET、HEXPIRE、HPTTL 和 HGETALL 核对 FIELDS 参数、返回值、版本边界与常见误区。450 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 索引 · 数据库 · 执行计划 · 性能排查 · 执行计划 cost_info MySQL EXPLAIN FORMAT=JSON rows_examined_per_scan 索引选择
用一个订单查询拆解 MySQL EXPLAIN FORMAT=JSON:怎么看 cost_info 和 rows_examined_per_scan,如何把估算行数、过滤条件与索引选择对上,避免只盯着 type=ALL 下结论。276 收藏 -
批量 INSERT 成功后,mysql_affected_rows() 只能给出影响行数,mysql_info() 还能返回 Records、Duplicates、Warnings 等细节。本文用 MySQL 8.4 C API 示例说明两者如何配合,以及 CLIENT_FOUND_ROWS 什么时候会改变判断。152 收藏 -
连接池让数据库线程看起来都一样时,可以查询 performance_schema.session_connect_attrs,用 ATTR_NAME、ATTR_VALUE 和 PROCESSLIST_ID 把连接还原到驱动、应用实例与线程,再结合连接状态完成定位。248 收藏 -
Redis Sentinel 切主后客户端频繁重连,通常要从主观下线、+switch-master 事件、服务发现和连接池旧连接四个边界排查;本文给出一次可回滚的定位路径。409 收藏 -
Redis 设置了 EXPIRE 后,键并不一定在到点瞬间从内存消失。本文从 TTL 读数、访问触发的惰性删除和后台主动过期检查入手,说明为什么会看到过期键,以及怎样用命令判断问题究竟在观察方式、访问路径还是过期清理压力。122 收藏 -
MySQL 给大表加索引时,ALGORITHM 和 LOCK 决定了变更方式与并发影响。本文用 ALTER TABLE 说明如何预判支持范围、处理元数据锁,并在上线前做可回退的核对。264 收藏 -
数据库 · Redis | 1个月前 | Redis · 消息队列 · Stream · 重试 · redis streams XPENDING XAUTOCLAIM PEL pending JUSTID
Redis Streams 里,XAUTOCLAIM 只负责把空闲消息转交给新消费者,不能替代 XACK,也不会自动清空 PEL。本文用 redis-cli 拆开 JUSTID、XPENDING、XACK 与 XDEL 的边界,给出重试后验收消息是否真正收口的检查路径。501 收藏 -
Redis 向量检索不是把 KNN 数字改大就能得到稳定结果。使用 FT.SEARCH 时,应先明确过滤条件、DIALECT 2 和 HYBRID_POLICY 的关系,再根据候选规模选择 ADHOC_BF 或 BATCHES,并检查距离排序是否符合业务语义。474 收藏 -
MySQL 主从切换后如何确认新主库已经追上指定事务?本文用 GTID 集合和等待函数组织一套可回滚的断点判断流程,覆盖超时、空集合和误判场景。111 收藏 -
MySQL 8.4 升级后旧客户端可能因认证插件不兼容而连接失败。本文从 mysql_native_password 停用、账户认证方式和客户端升级三个边界出发,给出可回滚的检查、切换与回归步骤。106 收藏