Go语言技术文章
-
Redis Lua 脚本一旦超过 lua-time-limit,会阻塞其他命令并返回 -BUSY。本文用一个长脚本现场说明如何确认阻塞、何时可以 SCRIPT KILL、写入后为什么只能重启,以及如何在脚本侧避免再次拖住主线程。184 收藏 -
Redis Lua 脚本一旦超过 lua-time-limit,会阻塞其他命令并返回 -BUSY。本文用一个长脚本现场说明如何确认阻塞、何时可以 SCRIPT KILL、写入后为什么只能重启,以及如何在脚本侧避免再次拖住主线程。196 收藏 -
MySQL 8.4 的 InnoDB 死锁发生后会自动选择一个事务回滚,但应用仍要识别错误并重试。本文用订单与库存更新场景还原锁等待环路,演示如何读取 SHOW ENGINE INNODB STATUS、开启 innodb_print_all_deadlocks、判断受害事务并验收安全重试。419 收藏 -
MySQL 8.4 的 InnoDB 死锁发生后会自动选择一个事务回滚,但应用仍要识别错误并重试。本文用订单与库存更新场景演示如何读取 SHOW ENGINE INNODB STATUS、开启 innodb_print_all_deadlocks、判断受害事务并验收重试策略。238 收藏 -
数据库 · Redis | 3星期前 | Redis · 缓存 · 运维排查 · 消息可靠性 · redis Pub/Sub Keyspace Notifications 过期通知 notify-keyspace-events
Redis 的过期通知适合做观测和轻量联动,却不能天然当成可靠消息。本文从过期事件漏收现场出发,核对 notify-keyspace-events、订阅连接和 expired 事件边界,再用补偿扫描与幂等处理收住通知丢失风险。226 收藏 -
数据库 · MySQL | 3星期前 | MySQL · 回滚 · 数据库运维 · 配置变更 · 系统变量 · MySQL 8.4 SET PERSIST SET PERSIST_ONLY RESET PERSIST mysqld-auto.cnf persisted_variables
MySQL 8.4 的 SET PERSIST 可以把全局系统变量同时写入运行时和 mysqld-auto.cnf,SET PERSIST_ONLY 则只为下一次启动准备配置。本文用连接数调整场景拆开两者的作用域、权限、复查与 RESET PERSIST 回退边界,避免把临时改动误当成永久配置。296 收藏 -
数据库 · MySQL | 3星期前 | MySQL · 回滚 · 数据库运维 · 配置变更 · 系统变量 · MySQL 8.4 SET PERSIST SET PERSIST_ONLY RESET PERSIST mysqld-auto.cnf persisted_variables
MySQL 8.4 的 SET PERSIST 可以把全局系统变量同时写入运行时和 mysqld-auto.cnf,SET PERSIST_ONLY 则只为下一次启动准备配置。本文用连接数调整场景拆开两者的作用域、权限、复查与 RESET PERSIST 回退边界,避免把临时改动误当成永久配置。244 收藏 -
数据库 · MySQL | 3星期前 | MySQL · sql优化 · 数据库运维 · 性能排查 · 优化器提示 · MySQL 8.4 SET_VAR optimizer hint sort_buffer_size SQL 性能隔离
MySQL 8.4 的 SET_VAR 优化器提示可以只为一条 SQL 临时调整可用系统变量。本文用报表排序场景说明语法、作用域、可调整变量、EXPLAIN 验收和回退边界,避免为了单条慢查询修改整个实例。497 收藏 -
Redis 8.6 新增 HOTKEYS,可以在指定采样窗口内按 CPU 或网络指标找出高频访问键。本文从缓存延迟升高的现场出发,演示 HOTKEYS START、GET、STOP 的最小用法,解释 COUNT、DURATION、SAMPLE 与 SLOTS 的边界,并给出集群分片、误判和上线验收清单。456 收藏 -
Redis 列表做轻量任务队列时,单独使用 RPOP 容易在消费进程崩溃后丢任务。本文用 LMOVE/BLMOVE 把任务先移入 processing list,再用 LREM 确认完成,拆开重复消费、幂等和集群同槽边界。300 收藏 -
数据库 · MySQL | 3星期前 | MySQL · DDL · 元数据锁 · 性能排查 · performance_schema · MySQL 元数据锁 metadata_locks performance_schema DDL阻塞 Waiting for table metadata lock
MySQL 的 ALTER TABLE 卡住时,不要只盯着 Waiting for table metadata lock。本文用 performance_schema.metadata_locks 和 threads 关联锁对象、等待会话与持有会话,并给出安全终止和发布前检查方法。297 收藏 -
Redis ACL DRYRUN 可以在不执行命令的情况下模拟用户权限。本文从 ACL SETUSER 配置命令权限和密钥模式,逐项验收读写边界、拒绝原因与上线前回归。359 收藏 -
Redis 向量集合适合把小规模向量检索先落到熟悉的 Redis 里。本文从 VADD 写入、VDIM 维度核对和 VSIM 相似度查询入手,演示如何验收数据是否写对、结果是否可解释,以及哪些边界不适合直接上线。225 收藏 -
数据库 · Redis | 3星期前 | Redis · 内存管理 · 故障排查 · 缓存运维 · redis OOM CLIENT NO-EVICT maxmemory-clients noeviction 客户端驱逐
Redis 写入报 OOM 时,先区分数据键无法淘汰与客户端输出缓冲触发驱逐。本文用 CLIENT NO-EVICT、maxmemory-clients、maxmemory-policy 和 INFO memory 还原两条故障链,给出核对命令、控制连接保护和回退边界。376 收藏 -
数据库 · Redis | 3星期前 | Redis · 内存管理 · 故障排查 · 缓存运维 · redis OOM CLIENT NO-EVICT maxmemory-clients noeviction 客户端驱逐
Redis 写入报 OOM 时,先区分数据键无法淘汰与客户端输出缓冲触发驱逐。本文用 CLIENT NO-EVICT、maxmemory-clients、maxmemory-policy 和 INFO memory 还原两条故障链,给出核对命令、控制连接保护和回退边界。152 收藏