Go语言技术文章
-
用 InnoDB 短事务配合 SELECT ... FOR UPDATE SKIP LOCKED,让多个消费者跳过已锁任务并安全更新状态,同时说明索引、空队列、长任务和异常恢复边界。184 收藏 -
Redis 用 SINTER 对多个 Set 求交集,适合按标签筛选同时满足多个条件的用户。本文从反向索引、SINTER 与 SINTERSTORE 的选择、结果失效、复杂度和 Redis Cluster 同槽约束说明完整做法。288 收藏 -
用 MySQL 生成列保存订单计算结果并建立索引,说明 VIRTUAL 与 STORED 的取舍、表达式匹配规则、JSON_UNQUOTE 用法和 EXPLAIN 检查方法。297 收藏 -
Redis Hash 可以把多个业务计数放在同一个 key 下,再用 HINCRBY 按 field 分别累加。本文说明首次写入、返回值、读取方式、非整数值和 64 位整数边界。268 收藏 -
MySQL 的 TIMESTAMP 会按连接时区与 UTC 做转换,DATETIME 则保存字面上的日期时间。本文从瞬时事件、预约时间、连接会话和 2038 年范围几个边界出发,整理跨时区业务的选型和检查方法。384 收藏 -
Redis 6.2 及以上可用 GETDEL 原子读取并删除字符串键,适合一次性登录令牌、确认码等场景。本文说明命中、空值、类型错误、旧版本 Lua 兼容和 TTL 边界。215 收藏 -
金额字段优先使用 DECIMAL,但 DECIMAL(10,2) 不是万能答案。本文用 M、D、整数位和 SQL mode 拆解字段范围,给出建表与边界检查示例,帮助你按业务上限选择精度和小数位。183 收藏 -
Redis 用 SET 更新字符串值后 TTL 变成 -1,通常不是过期计时器失效,而是 SET 默认覆盖整个键并清除旧过期时间。本文用 TTL、KEEPTTL 和 EX/PX 给出排查与修复方法。349 收藏 -
MySQL 存表情报错通常不是只改数据库默认字符集就够了,还要检查目标列和应用连接是否统一使用 utf8mb4。本文按检查、转换、连接配置和回滚边界给出一套可执行处理方法。207 收藏 -
Redis 删除大键时,DEL 会同步承担复合值的释放成本,UNLINK 则先摘除键并把内存回收放到后台线程。本文按负载、键大小和监控方式给出选择清单。120 收藏 -
MySQL 用 LEFT JOIN 做关联统计时,应 COUNT 右表非空主键,并把右表筛选条件放进 ON,才能列出没有明细的主体并返回 0。477 收藏 -
Redis SCAN 允许同一键在一次完整遍历中多次返回。本文解释游标、COUNT、MATCH 和并发修改的边界,并给出幂等消费与重复排查方法。285 收藏 -
MySQL 的 NOT IN 查询突然查不到数据,常见原因是列表或子查询结果含有 NULL。本文从三值逻辑解释这个现象,并用 NOT EXISTS、IS NULL 和过滤 NULL 的写法建立可检查的排除条件。413 收藏 -
使用 Redis GEOADD 建立门店地理索引,再用 GEOSEARCH 按半径筛选、按距离升序返回附近门店,并说明 WITHDIST、COUNT、ANY 和经纬度顺序的常见边界。331 收藏 -
MySQL 按天统计时,直接按业务表分组会丢掉没有记录的日期。本文用 WITH RECURSIVE 生成日期序列,再 LEFT JOIN 订单数据并用 COALESCE 补 0,同时处理时间索引和递归上限。177 收藏