Go语言技术文章
-
Redis BLMOVE 在源列表暂时没有元素时会阻塞,timeout 到期返回 nil 或 null,表示本次移动没有完成。本文说明如何用 EXISTS、TYPE、LLEN 观察源键,并处理补查时的并发竞态。108 收藏 -
MySQL 8.4 的 SHOW GRANTS 只看账号时容易漏掉角色携带的权限。本文用 app_read、app_write 和 report_user 拆解角色授予、默认激活、CURRENT_ROLE() 与 SHOW GRANTS ... USING 的核对顺序。107 收藏 -
MySQL 的 IS NULL 可以参与索引范围,但复合索引顺序不能靠 WHERE 条件位置判断。本文用租户与软删除示例说明左前缀、索引选择和 EXPLAIN 复查方法。107 收藏 -
Redis 布隆过滤器的 capacity 是初始子过滤器容量,超过后默认会创建新的子过滤器;每个子过滤器都有自己的位数组和哈希函数,因此 SIZE 与 FILTERS 会随扩容增加。本文用 BF.RESERVE、BF.INFO 和参数取舍说明如何定位增长原因。107 收藏 -
动态字段名拼接必须白名单校验,且参数绑定须用计算属性语法;JSONB模糊查询需确保字段为JSONB类型并建GIN索引;复杂场景应改用原生SQL+占位符参数化。动态字段名拼接必须白名单校验TypeORM的andWhere对于字段名(比如JSONB路径row_data->>'Location'里的Loc106 收藏 -
数据库 · MySQL | 1个月前 | MySQL · InnoDB · Purge Lag 长事务 InnoDB history list length information_schema.innodb_trx sys.innodb_lock_waits
InnoDB history list length 持续升高,通常不是单纯的写入变快,而是 purge 被长事务或历史读视图拖住。本文从监控现象出发,用 information_schema.innodb_trx、performance_schema 与 sys 视图定位阻塞源,再给出安全结束事务和复查回收速度的步骤。106 收藏 -
MySQL 8.4 升级后旧客户端可能因认证插件不兼容而连接失败。本文从 mysql_native_password 停用、账户认证方式和客户端升级三个边界出发,给出可回滚的检查、切换与回归步骤。106 收藏 -
从最近访问、累计频率、热点迁移和 TTL 设计几个维度比较 Redis 的 allkeys-lru 与 allkeys-lfu,并给出配置和观测检查清单。106 收藏 -
Redis GEOSEARCH 做附近门店查询时,距离相同、门店坐标变化和分页游标都会影响结果稳定性。本文用 GEOSEARCH、WITHDIST 和业务排序键拆解半径分页边界,并给出可重复的校验方法。105 收藏 -
Redis FUNCTION STATS 只能观察当前正在执行的函数,本文用 Redis 8.0 的真实长函数复现 running_script、duration_ms 与 engines 返回值,并说明它和历史调用统计的边界。105 收藏 -
缓存穿透不能只靠单一缓存策略。本文把 Bloom Filter、短 TTL 空值缓存和原子回源限流组合起来,说明请求顺序、参数边界、Go 示例与监控指标。105 收藏 -
Redis Lua 接收 JSON 时,ARGV 仍是原始字符串。本文用一次解码、字段类型校验和明确的写入/返回转换,处理字符串、数字、布尔值与 Lua 表混用带来的误判。104 收藏 -
MySQL 递归 CTE 的列类型只由非递归锚点推断。生成日期序列时显式 CAST 为 DATE,并把格式化文本移到 CTE 外部,可避免截断和严格模式报错。104 收藏 -
Redis淘汰策略需要同时匹配候选键范围与热点工作集。本文用假设活动缓存说明LRU、LFU、随机和TTL策略的取舍,给出配置与只读观察示例,强调热点保留不是保证,容量与回源约束仍须独立考虑。103 收藏 -
数据库 · MySQL | 1天前 | MySQL · 主从复制 · 数据一致性 MySQL复制 replicate-wild-do-table 复制过滤 CHANGE REPLICATION FILTER
从库表白名单、语句与行复制差异、初始化快照和回滚路径四个方面,说明 MySQL 复制过滤怎样降低副本数据暴露与误同步风险。102 收藏