Go语言技术文章
-
Redis 8.4 为 XREADGROUP 增加 CLAIM 选项,可在一次读取中优先接管达到空闲阈值的 Pending 消息,再读取新消息。本文用订单通知流说明 COUNT、BLOCK、重试计数和 XACK 的生产边界。266 收藏 -
数据库 · MySQL | 1天前 | 并发控制 · MySQL教程 · 数据库排查 · SQL写入 · 主键回传 · mysql 主键 并发写入 ON DUPLICATE KEY UPDATE LAST_INSERT_ID
应用用一条 INSERT ... ON DUPLICATE KEY UPDATE 保存业务唯一键时,新增行和命中旧行都需要返回同一个主键。本文用 account_code 唯一键演示 LAST_INSERT_ID(id) 的写法、连接级返回边界、并发验收与不适合使用的场景。266 收藏 -
Redis GETRANGE 按字节下标截取字符串或二进制值,负数下标从末尾计算,越界不会报错而是按可用范围返回。本文用 session:raw-token 示例核对起止位置、空结果和中文字节边界。266 收藏 -
MySQL 给大表加索引时,ALGORITHM 和 LOCK 决定了变更方式与并发影响。本文用 ALTER TABLE 说明如何预判支持范围、处理元数据锁,并在上线前做可回退的核对。264 收藏 -
订单清理任务执行 DELETE 时,真正拖慢速度的可能不是主表扫描,而是子表外键检查、级联删除和长事务锁范围。本文用订单与明细表的场景拆开执行路径,给出索引核对、分批删除和安全验收方法。262 收藏 -
Redis BITOP 可以把多个 Bitmap 按 AND、OR 或 XOR 合并成新的结果键,适合做用户分群和实时指标。本文用 redis-cli 拆开结果集长度、BITCOUNT 校验、O(N) 成本与长位图内存边界。262 收藏 -
数据库 · Redis | 3天前 | Redis · 内存管理 · 性能排查 · 碎片率 · 运维验证 · redis 内存回收 INFO memory allocator_frag_ratio 内存碎片率
Redis 内存使用量下降后,RSS 仍然居高不下,通常要把 allocator_frag_ratio、used_memory 与进程峰值放在一起看。本文从 INFO memory 的真实字段建立判断顺序,区分内存碎片、峰值残留和回收未完成,并给出验证与处理边界。261 收藏 -
数据库 · Redis | 2星期前 | Redis · 查询优化 · 性能边界 · Sorted Set · 集合运算 · redis limit Sorted Set ZINTERCARD 集合交集 基数统计
Redis ZINTERCARD 只返回多个 Sorted Set 的交集数量,适合在推荐、活动资格和筛选接口中先做交集基数判断。本文用 redis-cli 拆开 ZINTERCARD 与 ZINTER、LIMIT 的差别,说明空 key、集群同槽和“大于阈值”判断的边界。254 收藏 -
MySQL 8.4 的 CTE 不一定会生成临时结果集。本文用 EXPLAIN 和 optimizer_switch 判断 CTE 是被合并还是物化,并说明 derived_merge、NO_MERGE 与多次引用的边界。253 收藏 -
Redis Hash 适合把一组相关属性放在同一个键下,但字段过大、更新频繁或过期时间不同,会让读取、内存和淘汰策略变得难以验收。本文用用户资料缓存场景拆解字段粒度、局部更新、拆键与 TTL 的取舍,并给出 redis-cli 检查方法。253 收藏 -
Redis Cluster 中,多键操作需要落在同一 slot,而把所有订单都塞进一个哈希标签又可能制造热点。本文用订单明细与库存扣减场景说明如何拆分 Key、验证 slot 分布,并在多键事务与分片均衡之间做取舍。249 收藏 -
MySQL 的 DDL 卡住时,先从 performance_schema.metadata_locks 区分等待者与持有者,再核对对象、线程和业务状态,确认影响后才决定终止会话。249 收藏 -
连接池让数据库线程看起来都一样时,可以查询 performance_schema.session_connect_attrs,用 ATTR_NAME、ATTR_VALUE 和 PROCESSLIST_ID 把连接还原到驱动、应用实例与线程,再结合连接状态完成定位。248 收藏 -
Redis ZMSCORE 可以一次查询 Sorted Set 中多个成员的分数,但返回顺序、缺失成员的 nil 和空集合结果经常被业务代码误判。本文用排行榜示例说明批量查询、结果映射与命中验收边界。247 收藏 -
删除包含大量元素的 Redis Key 时,DEL 会把回收工作压在主线程,UNLINK 则先解除 Keyspace 引用,再由后台线程回收对象。本文用 redis-cli 和 lazyfree_pending_objects 拆解两者的边界、观测方法与回滚检查。247 收藏