Go语言技术文章
-
MySQL REGEXP_LIKE 返回 1、0 或 NULL,用于判断字符串是否匹配正则表达式。本文从 LIKE 与正则的区别讲起,说明 match_type 的大小写和换行控制,并整理 NULL、转义、字符集与 WHERE 查询中的排查方法。108 收藏 -
派生表并不是天然阻止所有下推。本文区分派生条件下推与 Index Condition Pushdown,说明合并、物化、EXPLAIN 判断和适用边界。412 收藏 -
MySQL 查询偶尔选择 Index Merge 时,可以用 NO_INDEX_MERGE optimizer hint 在单条语句范围内临时关闭索引合并。本文比较 optimizer_switch、无索引参数和指定索引参数的写法,并说明如何用 EXPLAIN 判断提示是否真正改变访问路径。325 收藏 -
MySQL Performance Schema 的 events_statements_history_long 默认可能未开启。本文说明 setup_consumers 的层级开关、动态启用方式、启动时容量设置、查询最近已结束语句的方法,以及查不到记录时的排查顺序。332 收藏 -
MySQL JSON_CONTAINS_PATH 用来判断 JSON 文档中的一个或多个路径是否存在。本文用最小 SQL 说明 one 和 all 的区别,并梳理 0、1、NULL、JSON null、非法路径以及 WHERE 条件中的常见误用。399 收藏 -
Redis FUNCTION DELETE 会删除整个库及库内全部函数。本文说明库名与函数名的区别、删除后 FCALL 失效的判断方法、从受控源码恢复的命令,以及集群部署和权限隔离的注意事项。255 收藏 -
Redis Cluster 的 MOVED 提示槽位路由需要更新,ASK 则用于迁移中的单次请求。本文说明两者区别、ASKING 的连接范围,并用只读命令排查客户端模式、槽位拓扑和重定向目标不可达问题。490 收藏 -
Redis Sentinel 故障转移后,不要只凭一个地址判断成功。本文用当前主节点地址、实例角色和配置纪元三类信息,说明怎样确认切换已经完成。496 收藏 -
用 keyspace notification 实时观察 Redis 被 maxmemory 淘汰的键名,再用 INFO stats 的 evicted_keys 做累计核对,覆盖单机、断线和 Cluster 边界。378 收藏 -
Redis RESP3 并不是把数组随机改成 map,而是协议版本决定了命令返回类型。本文用 HGETALL 说明 RESP2 与 RESP3 的原始差异、HELLO 协商方式、客户端解码边界以及不能依赖 map 顺序的兼容性注意事项。367 收藏 -
Redis SETRANGE 按零基偏移覆盖字符串片段,key 不存在时按空字符串处理,偏移超过当前长度会补零字节。本文说明返回长度、字节偏移、go-redis 错误处理和大偏移的使用边界。288 收藏 -
Redis HINCRBYFLOAT 遇到不存在的 Hash 字段时会按 0 参与浮点递增并写回结果。本文区分直接累计、显式基线、非法数值和错误 key 类型,并给出 go-redis 的错误处理写法。430 收藏 -
Redis SET 可以用 NX 只在 key 不存在时写入,并用 EX 或 PX 同时设置过期时间,适合实现短生命周期幂等锁。本文说明抢锁返回值、唯一 token、安全释放和单实例适用边界。278 收藏 -
Redis ZRANGE 加上 WITHSCORES 后会把成员和分数交替返回。本文说明如何按相邻位置保留对应关系,并给出 go-redis 的结构化读取方式、空结果处理、索引范围与分数精度边界。404 收藏 -
Redis Lua 中的 cjson.encode 会把 Lua 值编码为 JSON 字符串。本文用对象和数组两个最小示例说明键结构、返回结果、终端转义与混合键边界,帮助你避免把 Lua 表直接返回和显式 JSON 编码混为一谈。212 收藏