Go语言技术文章
-
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 收藏 -
Redis HyperLogLog 适合统计大规模 UV:用 PFADD 写入访问标识,PFCOUNT 读取估算值,PFMERGE 合并渠道或分片,并根据 0.81% 左右标准误差判断是否需要精确 Set。302 收藏 -
使用 MySQL JSON_TABLE() 配合 $[*] 将 JSON 数组展开为多行,讲清 PATH、FOR ORDINALITY、NESTED PATH、ON EMPTY 和 ON ERROR 的写法与边界。490 收藏 -
Redis ZSET 分数相同时不会按插入顺序排列,而是继续按 member 的二进制字节序排序。本文用命令示例说明正反向查询,并给出姓名、序号和时间等业务 tie-break 的设计方法。279 收藏 -
MySQL 计算相邻记录时间差的通用写法:先用 LAG() 取上一条时间,再用 TIMESTAMPDIFF() 计算秒或分钟,并处理分组、首行、并列时间和 NULL。176 收藏 -
用 Redis bitmap 按用户和月份记录每日签到,演示 SETBIT、GETBIT、BITCOUNT 的组合,并说明日期偏移、BIT 范围、过期和补签边界。446 收藏 -
用 ROW_NUMBER 为组内记录编号,演示 MySQL 分组取最新整行的写法,并说明 MAX 加回表、并列时间和索引复查要点。423 收藏 -
Redis Stream 消费者异常退出后,未确认消息会留在 PEL。本文用 XPENDING 定位积压,再比较 XAUTOCLAIM 与 XCLAIM,给出带游标、批量和重试边界的可重复接管流程。345 收藏 -
MySQL 深分页变慢,通常不是 LIMIT 取几十行的问题,而是 OFFSET 让服务器先定位并丢弃前面的大量记录。本文用稳定联合排序和游标条件改写下一页查询,并说明如何用 EXPLAIN 判断索引是否真正接住了边界。405 收藏 -
Redis Lua 的优势是减少网络往返并保持原子性,代价是脚本运行期间会占用主线程。本文用有界循环、KEYS/ARGV、SLOWLOG、延迟历史和脚本缓存调用,给出一套可执行的收敛与拆分判断方法。216 收藏