Go语言技术文章
-
数据库 · MySQL | 1天前 | MySQL · InnoDB · MySQL锁等待 performance_schema.data_lock_waits data_locks锁对象 InnoDB事务阻塞 锁等待链定位
从 data_lock_waits 和 data_locks 还原等待事务、阻塞事务及锁对象,再映射到 InnoDB 会话和最后 SQL,形成一套可复核的 MySQL 锁等待链定位方法。497 收藏 -
Redis Stream 消费组出现 pending 积压时,先用 XPENDING 看数量和空闲时间,再用 XAUTOCLAIM 接管超时消息,最后通过幂等、分批和回滚把积压安全排空。494 收藏 -
数据库 · MySQL | 3星期前 | MySQL · 数据库 · 权限管理 · 故障排查 · 账号安全 · 账号锁定 MySQL 8.4 FAILED_LOGIN_ATTEMPTS PASSWORD_LOCK_TIME ACCOUNT UNLOCK
MySQL 8.4 账号因为连续输错密码被临时锁定时,不能只看一条 Access denied。本文用 SHOW CREATE USER、Locked_connects 和失败登录记录区分锁定原因,并给出安全解锁、策略修正与复查步骤。494 收藏 -
Redis LMPOP 可以从多个候选列表中找到第一个非空键,并按 LEFT 或 RIGHT 一次弹出指定数量。本文用订单队列示例拆清 COUNT、空队列返回和集群多键边界。494 收藏 -
Redis 8.6 为 Streams 的 XADD 增加 IDMP 与 IDMPAUTO,帮助生产端在网络断开或进程重试时避免同一消息重复入流。本文拆开 pid、iid、Stream entry ID 与消费者组的边界,给出可验证的命令写法。494 收藏 -
Redis Stream 消费组里的 Pending 消息不是普通队列积压。本文用 XPENDING 判断空闲时间,再用 XAUTOCLAIM 认领超时消息,最后用 XACK 收口,并说明认领后的重复消费与幂等边界。494 收藏 -
Redis Lua 脚本不要只返回 OK 或空值。本文用固定的状态码与 payload 契约区分业务成功、状态冲突、条件未满足和命令执行错误,并给出 pcall 与 Go 客户端解析的迁移清单。493 收藏 -
订单创建时先预占库存,用户超时未支付就需要自动释放。本文用 MySQL 8.0 的事件调度器搭一个小型回收任务,围绕 stock_reservations 表说明状态条件、批量边界、索引和锁的关系,并用可重复的 SQL 验收回收结果。492 收藏 -
MySQL在UPDATE中不支持直接引用自身表的子查询,否则会报“You can't specify target table”错误,而PostgreSQL原生支持UPDATE...FROM,不存在这种限制。不过,两者都要保证关联条件清晰、索引有效,并且建议先用SELECT进行验证。子查询在 UPD492 收藏 -
只需要多个 Redis 集合的去重总数时,不必先用 SUNION 拉回全部成员。Redis 8.10 的 SUNIONCARD 直接返回并集基数,并可用 LIMIT 或 APPROX 控制统计边界。490 收藏 -
使用 MySQL JSON_TABLE() 配合 $[*] 将 JSON 数组展开为多行,讲清 PATH、FOR ORDINALITY、NESTED PATH、ON EMPTY 和 ON ERROR 的写法与边界。490 收藏 -
Redis ZINCRBY 使用双精度浮点分值,直接累加小数可能出现展示误差。本文用两位小数积分榜演示整数缩放、历史数据修复和上线验收。490 收藏 -
Redis GEOSEARCH 适合做附近门店、配送站点和地理围栏的初筛,但经度纬度顺序、米与千米单位、BYRADIUS 与 BYBOX、排序和边界结果都容易写错。本文用一组可复现的门店数据说明查询写法、结果核对与生产边界。489 收藏 -
用Redis ZSET的score保存到期时间,以唯一任务成员和幂等键控制重复入队,再通过原子领取、租约与退避重试处理消费者崩溃和延迟漂移。489 收藏 -
MySQL 9.4 将 back_log 默认值提高到 10000,但它只负责短时连接请求的监听队列,不等于并发连接容量。本文从 back_log、max_connections 与 Linux socket 队列上限三层说明如何核对。488 收藏