Go语言技术文章
-
用一个带版本号的缓存写入场景,验证 Redis SET 的 GET、KEEPTTL、NX/XX 组合行为,避免更新成功却丢掉原有过期时间。501 收藏 -
数据库 · Redis | 5天前 | Redis · 消息队列 · Stream · 消费组 · 重试 · XAUTOCLAIM · redis streams XPENDING XAUTOCLAIM PEL pending JUSTID
Redis Streams 里,XAUTOCLAIM 只负责把空闲消息转交给新消费者,不能替代 XACK,也不会自动清空 PEL。本文用 redis-cli 拆开 JUSTID、XPENDING、XACK 与 XDEL 的边界,给出重试后验收消息是否真正收口的检查路径。501 收藏 -
MySQL 分区表并不是加上 PARTITION BY 就能保留所有唯一约束;分区表达式中的列必须进入每一个唯一键,本文用订单表拆开主键、业务唯一键和建表取舍。501 收藏 -
Redis 客户端缓存开启 CLIENT TRACKING 后,如何确认读过的键能收到失效通知?本文用 RESP3、BCAST、NOLOOP 和 TRACKINGINFO 组成一套可复查的验收流程。500 收藏 -
Redis 线上重启时,RDB 与 AOF 会走不同的恢复路径。本文用一个可复现的 Go 检查程序拆开两种持久化方式的边界,说明如何按数据恢复目标选择配置。500 收藏 -
MySQL 索引不是越多越好。本文用 orders 表演示如何先把候选索引设为 INVISIBLE,再结合 EXPLAIN ANALYZE、慢查询和写入开销验证,确认无误后再删除,并保留可回退路径。499 收藏 -
数据库 · MySQL | 2星期前 | MySQL · sql优化 · 数据库运维 · 性能排查 · 优化器提示 · MySQL 8.4 SET_VAR optimizer hint sort_buffer_size SQL 性能隔离
MySQL 8.4 的 SET_VAR 优化器提示可以只为一条 SQL 临时调整可用系统变量。本文用报表排序场景说明语法、作用域、可调整变量、EXPLAIN 验收和回退边界,避免为了单条慢查询修改整个实例。497 收藏 -
数据库 · MySQL | 1星期前 | MySQL · 数据库 · 权限管理 · 故障排查 · 账号安全 · 账号锁定 MySQL 8.4 FAILED_LOGIN_ATTEMPTS PASSWORD_LOCK_TIME ACCOUNT UNLOCK
MySQL 8.4 账号因为连续输错密码被临时锁定时,不能只看一条 Access denied。本文用 SHOW CREATE USER、Locked_connects 和失败登录记录区分锁定原因,并给出安全解锁、策略修正与复查步骤。494 收藏 -
Redis LMPOP 可以从多个候选列表中找到第一个非空键,并按 LEFT 或 RIGHT 一次弹出指定数量。本文用订单队列示例拆清 COUNT、空队列返回和集群多键边界。494 收藏 -
订单创建时先预占库存,用户超时未支付就需要自动释放。本文用 MySQL 8.0 的事件调度器搭一个小型回收任务,围绕 stock_reservations 表说明状态条件、批量边界、索引和锁的关系,并用可重复的 SQL 验收回收结果。492 收藏 -
MySQL在UPDATE中不支持直接引用自身表的子查询,否则会报“You can't specify target table”错误,而PostgreSQL原生支持UPDATE...FROM,不存在这种限制。不过,两者都要保证关联条件清晰、索引有效,并且建议先用SELECT进行验证。子查询在 UPD492 收藏 -
Redis GEOSEARCH 适合做附近门店、配送站点和地理围栏的初筛,但经度纬度顺序、米与千米单位、BYRADIUS 与 BYBOX、排序和边界结果都容易写错。本文用一组可复现的门店数据说明查询写法、结果核对与生产边界。489 收藏 -
用 Redis INCRBYFLOAT 做累计值时,重点不是把返回值当金额类型,而是核对输入格式、字符串结果、浮点误差和业务落库边界。487 收藏 -
MySQL 分区表归档不要直接 DROP PARTITION:先用 INFORMATION_SCHEMA.PARTITIONS 核对边界,再用 EXCHANGE PARTITION 把旧数据换到归档表,最后用校验和回滚演练确认没有误删。483 收藏 -
Redis 7.4 项目里把集合成员一次性读回应用,容易让单次请求和客户端内存一起抖动。本文从 SMEMBERS 迁移到 SSCAN,说明游标循环、COUNT 提示、重复项处理和上线复测的边界。483 收藏