Go语言技术文章
-
Redis 普通 SET 会替换键的过期设置。本文说明怎样用 KEEPTTL 覆盖字符串值、用 TTL/ PTTL 确认结果,并梳理 XX、永久键以及 EX/PX 参数冲突。379 收藏 -
Redis XTRIM MINID 按完整消息ID下界裁剪Stream。通过独立样例区分精确、近似裁剪和消费组引用策略,说明时间窗口、残留记录与不可恢复删除的边界。379 收藏 -
Redis 连接池耗尽不等于 Redis 慢。本文用 go-redis PoolStats、SLOWLOG GET 和 CLIENT LIST 区分慢命令、池等待与请求生命周期未结束,并给出修复顺序。378 收藏 -
数据库 · MySQL | 1星期前 | MySQL · mysql SET PERSIST SET PERSIST_ONLY RESET PERSIST mysqld-auto.cnf SET GLOBAL
MySQL 的 SET GLOBAL 只改变当前实例运行时值,SET PERSIST 还会把配置写入 mysqld-auto.cnf;SET PERSIST_ONLY 只持久化而不改当前值。本文用生效时机、变量可写性、权限和回退动作说明四条语句该怎么选。378 收藏 -
Redis 的 EXEC 返回 nil/null,通常表示 WATCH 监视的键在提交前被触碰,不能据此判断具体哪个客户端打断了事务。本文区分监视冲突、队列错误和事务内命令错误,并给出带上限的重试写法。377 收藏 -
MySQL JSON 列不能直接按任意路径高效过滤时,可以用 generated column 把固定路径提取成可索引的 SQL 类型。本文从表达式、字符排序规则、VIRTUAL/STORED 和 EXPLAIN 四个方面给出实现方法与边界。377 收藏 -
Redis EXPIRE 的 LT 选项只能保证新 TTL 更短,却会把没有过期时间的键视作无限 TTL。本文用 TTL、PTTL 和原子 Lua 脚本说明怎样只缩短已有 TTL,并处理返回值与并发边界。377 收藏 -
数据库 · Redis | 2个月前 | Redis · 内存管理 · 故障排查 · 缓存运维 · redis OOM CLIENT NO-EVICT maxmemory-clients noeviction 客户端驱逐
Redis 写入报 OOM 时,先区分数据键无法淘汰与客户端输出缓冲触发驱逐。本文用 CLIENT NO-EVICT、maxmemory-clients、maxmemory-policy 和 INFO memory 还原两条故障链,给出核对命令、控制连接保护和回退边界。376 收藏 -
MySQL 8.0 的 SELECT FOR UPDATE NOWAIT 能在目标行被占用时立即返回,而不是让请求排队。本文用订单库存场景拆解锁冲突返回、事务回滚与唯一索引边界。376 收藏 -
Redis 7.0 起可以用 CLIENT NO-EVICT 保护控制连接,但它只影响客户端淘汰,不会替代 maxmemory 或键淘汰策略。本文用一条监控连接说明 ON/OFF、配置前提和验收边界。376 收藏 -
MySQL JSON_OVERLAPS 用于判断两个 JSON 文档是否存在共同元素,适合筛选标签、权限或适用范围数组。本文给出查询写法,并说明 JSON_CONTAINS、类型精确匹配、NULL、嵌套数组和 InnoDB 多值索引的边界。376 收藏 -
Redis 7.4 及以上可以用 HPEXPIRE 给 hash 的指定字段设置毫秒 TTL。本文用 redis-cli 说明 FIELDS 语法、NX/XX/GT/LT 条件、HPTTL 检查方法,以及字段不存在和 key 级过期的边界。376 收藏 -
MAXLEN 可在写入或独立裁剪时限制 Redis Stream 保留条目数。本文对比精确与近似模式,给出命令示例,并说明 LIMIT、消费组引用及容量规划的适用边界。376 收藏 -
Redis SCAN 不会把整个键空间一次性锁住,但完整遍历仍是 O(N) 工作。COUNT 只是单次工作量提示,配合游标、MATCH、TYPE 和渐进式巡检才能控制线上影响。375 收藏 -
Redis ZRANDMEMBER 用于从 sorted set 随机读取成员。本文按单个成员、正负 COUNT、WITHSCORES、空键和返回顺序说明调用边界,帮助你把随机抽样与按分数查询区分开。375 收藏