Go语言技术文章
-
+sdown表示单个哨兵认定主节点失联,+odown才是触发故障转移的共识临界点;两者时间差暴露网络或配置问题,+odown后还需经选举、选从库、提升等步骤才能完成切换。465 收藏 -
本文用 Redis Bitmap 实现用户签到:用 SETBIT 写入每天状态,用 GETBIT 查询当天是否签到,用 BITCOUNT 快速统计月签到天数,并补充连续签到和键设计建议。464 收藏 -
本文从 Redis 分布式锁偶发并发进入的现场出发,复现旧请求误删新锁的问题,定位锁值缺少身份标记的根因,并用 token 校验方式修复释放锁流程。464 收藏 -
Redis6+的io-threads应设为2~8,不超过磁盘队列深度的2倍,且必须保持io-threads-do-readsno;它仅加速写入内核页缓存,不加速fsync,设得过多反而加剧IOWAIT和延迟。463 收藏 -
集群模式下slave-read-onlyyes无效,因集群协议绕过主从配置;必须用readonly命令开启连接级只读,使从节点响应本主槽读请求。461 收藏 -
应先检查是否连接泄露,再调整maxclients:通过redis-cliclientlist确认连接是否持续增长,修复Jedis未close问题;若确需扩容,须同步调高系统ulimit-n并重启Redis。460 收藏 -
Redis碎片率超1.5时响应变慢甚至雪崩,根本原因是jemalloc在不连续空闲块中反复查找合适内存块,导致分配延迟升高、CPU波动、GC压力上升并可能引发级联雪崩。457 收藏 -
本文用两个 MySQL 会话复现可重复读和幻读场景,解释快照读、当前读、范围查询和间隙锁的关系,帮助排查线上并发写入问题。455 收藏 -
Redis集群不支持Pub/Sub跨节点广播,因设计上无全局频道路由机制,PUBLISH消息仅被本地订阅者接收;应改用单节点Redis+连接池,或升级至Kafka/Pulsar等专业消息中间件。451 收藏 -
Redis List 用 BRPOP 做任务队列时,Worker 取走任务后宕机会让任务直接消失。更稳的做法是先用 LMOVE 转到处理中队列,业务成功后再 LREM 确认。449 收藏 -
预热不充分指预热数据未覆盖真实热点、未执行完或未及时更新,导致上线后2–5分钟内缓存击穿;须用线上采样等动态数据源、分批超时控制、命中率校验及事件驱动机制。445 收藏 -
Redis 过期键通知适合做自动清理的提醒信号,但不能当成可靠消息队列。更稳的做法是订阅事件触发清理任务,同时保留补偿扫描、幂等门禁、失败重试和告警复盘。441 收藏 -
RedisTemplate操作Hash返回null的主因是序列化器不一致:key、hashKey、value三者序列化方式必须匹配,尤其hashKey须用StringRedisSerializer,value推荐Jackson序列化,否则反序列化失败或读不到数据。439 收藏 -
intset是Redis对全整数小集合的内存优化编码,将整数紧凑存储于连续内存,无指针和字符串头开销,比hashtable节省3–5倍内存;前提为元素均为合法64位有符号整数且数量不超set-max-intset-entries(默认512)。439 收藏 -
数据库 · MySQL | 2个月前 | 高并发 · 故障排查 · MySQL教程 · 事务隔离 · InnoDB锁 · mysql innodb 高并发 锁等待 MySQL 8.4 NOWAIT SKIP LOCKED
围绕高并发工单抢占和库存预占,讲清 MySQL 8.x InnoDB locking read 中 NOWAIT、SKIP LOCKED 的适用边界、复现方法、SQL 改写、锁等待诊断和上线检查。439 收藏