Go语言技术文章
-
Redis Bitmap 很适合保存按天变化的签到状态,但连续天数不能直接用 BITCOUNT 代替。本文从日期偏移、补签规则和查询性能三个角度,给出可验证的存储方案与边界处理。332 收藏 -
Redis 8.8 的 XNACK 可以把消费组中尚未处理完的 Pending 消息立即交回,避免等待 idle-timeout。文章区分 XNACK、XACK 与 XAUTOCLAIM,并给出优雅退出、资源压力和回归检查的边界。332 收藏 -
Redis 设置了 EXPIRE,业务却发现旧缓存没有在整点消失,通常不是 TTL 失效,而是过期判定、删除时机和监控口径混在了一起。本文从过期键残留现场出发,拆解惰性删除与定期扫描的边界,给出可复查的命令、通知配置和生产处理建议。331 收藏 -
MySQL 大表使用 LIMIT offset,size 时,数据库往往仍要扫描并丢弃前面的记录,页码越深越慢。本文用订单列表说明游标分页如何配合复合索引、稳定排序和上一页游标,兼顾速度、重复记录与翻页边界。331 收藏 -
Redis SINTERCARD 只返回多个集合的交集数量,不传输成员列表,适合做资格预检、标签重合度判断和批量过滤。本文从最小可运行示例开始,核对返回值、LIMIT 提前停止、键类型错误与 Redis Cluster 的同槽边界。331 收藏 -
使用 Redis GEOADD 建立门店地理索引,再用 GEOSEARCH 按半径筛选、按距离升序返回附近门店,并说明 WITHDIST、COUNT、ANY 和经纬度顺序的常见边界。331 收藏 -
Redis 8.8 新增 Array 数据结构与 ARLASTITEMS,可以直接读取最近写入的一段数组元素。本文用批量日志尾部读取演示 ARLEN、负索引、数量边界和版本兼容验收。330 收藏 -
Redis ZMPOP 适合把多个有序集合里的最高分或最低分成员一次取出并删除。本文用分片排行榜消费场景说明 COUNT、空结果、原子性、集群同槽和失败重试边界。330 收藏 -
MySQL 分区裁剪不需要单独开关,关键是分区表达式与 WHERE 条件能否推导出有限的分区范围。本文用按日期 RANGE 分区的订单表说明半开区间写法,并通过 EXPLAIN 的 partitions、rows、type 和 key 排查裁剪与分区内索引访问。329 收藏 -
Redis WAIT 等待副本确认,WAITAOF 等待本地或副本 AOF fsync;两者都不能把异步复制变成强一致,选择时要先分清复制安全与磁盘持久化目标。327 收藏 -
用 RANGE COLUMNS 按月份组织 MySQL 分区表,先核对分区边界,再安全删除越过保留线的历史分区,并处理 MAXVALUE 分区的滚动维护。327 收藏 -
sys.schema_unused_indexes 只能说明当前统计周期没有记录到索引事件,不能直接等同于业务永远不使用。本文给出从观察周期、业务 SQL、执行计划到 invisible index 灰度验证的安全删除流程。327 收藏 -
对比 Redis 普通 Pub/Sub 与分片 Pub/Sub 的传播范围、命令、集群路由和可靠性边界,帮助按全局广播或业务 shard 选择方案。327 收藏 -
Redis 分布式锁最危险的 bug 不是没加锁,而是释放时删掉了后来持有者的锁。本文从锁过期、业务变慢和重复释放的现场出发,说明唯一令牌如何确认所有权,再用 Redis Lua 脚本把校验与删除放进同一个原子动作,最后补上续期、超时和故障恢复边界。326 收藏 -
MySQL 8.4 的 CHECK 约束已经可以真正拦截不满足条件的写入,但约束状态、NULL 三值逻辑和隐式转换会让排查结果与直觉不同。本文用可复现实验核对约束定义、失败写入和历史脏数据清理边界。326 收藏