Go语言技术文章
-
用 MySQL 8.0 的 SKIP LOCKED 做并发任务抢占,关键不在于把锁语句拼出来,而在于限定索引范围、保持短事务、正确处理空队列,并用状态更新和幂等键验收重复消费。228 收藏 -
数据库 · Redis | 2天前 | Redis · 缓存 · 运维排查 · 消息可靠性 · redis Pub/Sub Keyspace Notifications 过期通知 notify-keyspace-events
Redis 的过期通知适合做观测和轻量联动,却不能天然当成可靠消息。本文从过期事件漏收现场出发,核对 notify-keyspace-events、订阅连接和 expired 事件边界,再用补偿扫描与幂等处理收住通知丢失风险。226 收藏 -
COUNT(字段)的值始终小于等于COUNT(*),这是因为COUNT(字段)仅对该字段中的非NULL值进行统计,而COUNT(*)则会统计所有的物理行。两者的差值就是该字段中NULL值的数量,这是SQL标准规定的行为,并非程序错误。为什么COUNT(字段)总是 ≤ COUNT(*)COUNT(*)226 收藏 -
Redis 向量集合适合把小规模向量检索先落到熟悉的 Redis 里。本文从 VADD 写入、VDIM 维度核对和 VSIM 相似度查询入手,演示如何验收数据是否写对、结果是否可解释,以及哪些边界不适合直接上线。225 收藏 -
RedisLua脚本需用原子“读-判-写”实现状态变迁,推荐HASH结构存储多字段(如status、updated_at、version),通过HGETALL/HSET原子操作,结合redis.call("TIME")获取时间戳、INCR或version校验防越级跳转,返回结构化结果便于业务判断。224 收藏 -
Redis延迟高但CPU正常通常是网络丢包或抖动所致,表现为redis-cli--latency毛刺飙升、ping标准差>10ms或丢包率>0.1%,需用tcpdump抓包分析重传与ACK丢弃,并排查云环境安全组、NAT会话老化及内核TCP参数配置。221 收藏 -
RedisHash最适合存购物车,因其天然支持按商品ID(field)原子增减、查询、删除;HINCRBY可安全±数量并自动初始化为0,但需应用层校验负数;key为cart:{user_id},value仅存整数数量,过期用EXPIRE设置。221 收藏 -
直接用DEL释放锁会误删其他客户端的锁,因判断持有锁与删除非原子操作;Lua脚本通过原子执行“GET校验+DEL”解决,需传入key和client_id,返回1成功、0失败。216 收藏 -
UNION报错“类型integer和text不能匹配”的根本原因是同位置列类型不兼容,必须显式转换每列类型,统一NULL标注、字符集校对、时间精度及时区,并避免依赖隐式升格。UNION报错“类型integer和text不能匹配”怎么办直接原因就是两个SELECT同位置列的类型不匹配,PostgreS215 收藏 -
数据库 · MySQL | 4天前 | MySQL · 复制 · 主键 · InnoDB · 数据库迁移 · 数据库迁移 MySQL 8.4 sql_generate_invisible_primary_key 生成不可见主键 my_row_id
MySQL 8.4 可以为没有显式主键的 InnoDB 表生成不可见主键。本文用迁移排查场景说明如何确认 my_row_id、区分源库与副本行为,并给出备份、建表和回滚验收清单。208 收藏 -
Redis LCS 不只是返回两段文本的最长公共子序列,还能用 IDX 找到两边的匹配区间。本文用配置版本对比说明 LEN、IDX、MINMATCHLEN 和 WITHMATCHLEN 的结果结构、顺序陷阱与生产边界。208 收藏 -
Redis 的 SMISMEMBER 可以一次判断多个成员是否属于同一个 Set,并按请求顺序返回 0/1 结果。本文用购物车权益集合核对重复成员、空键、返回映射和 ACL 只读权限边界。207 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 数据库 · 联合索引 · ORDER BY · 慢查询排查 · mysql order by explain 慢查询 联合索引 filesort
本文从列表接口排序变慢的现场开始,带你用 EXPLAIN 看执行计划,定位 ORDER BY 触发 filesort 的原因,再按筛选字段和排序字段设计联合索引,最后通过 rows、Extra 和耗时变化验证优化效果。203 收藏 -
一对一关联表中间出现重复行,这表明右表的外键实际上并非唯一。我们应当先通过SELECT foreign_key, COUNT() FROM child_table WHERE foreign_key IS NOT NULL GROUP BY foreign_key HA VING COUNT() >197 收藏 -
Redis Lua 脚本一旦超过 lua-time-limit,会阻塞其他命令并返回 -BUSY。本文用一个长脚本现场说明如何确认阻塞、何时可以 SCRIPT KILL、写入后为什么只能重启,以及如何在脚本侧避免再次拖住主线程。196 收藏