Go语言技术文章
-
Redis 的 COMMAND DOCS 可以返回命令的 since、复杂度、参数结构和 ACL 分类。本文用它为客户端做版本兼容探测,区分命令不存在、参数不支持和模块命令,并给出可落地的探测与回归命令。219 收藏 -
Redis 写入成功不等于副本已收到,也不等于 AOF 已落盘。本文用 WAIT 和 WAITAOF 拆开复制确认、AOF 持久化确认、超时返回与故障切换边界,给出 redis-cli 验收命令和业务侧选型清单。218 收藏 -
Redis Cluster 遇到 CROSSSLOT 时,先用 CLUSTER KEYSLOT 找出不同槽位,再用业务 ID hash tag 重构相关 key,并评估迁移与热点风险。218 收藏 -
从 AOF 多部分文件、fork 与 Copy-on-Write、fsync 和 INFO persistence 指标入手,说明重写期间磁盘增长与延迟抖动的来源,并给出配置和排查方法。218 收藏 -
MySQL 8.4 InnoDB 表空间加密不能只看建表语句:先核对密钥环组件和 ENCRYPTION 状态,再检查 INFORMATION_SCHEMA.INNODB_TABLESPACES,最后用一次受控重启确认恢复链路可用。216 收藏 -
Redis Lua 的优势是减少网络往返并保持原子性,代价是脚本运行期间会占用主线程。本文用有界循环、KEYS/ARGV、SLOWLOG、延迟历史和脚本缓存调用,给出一套可执行的收敛与拆分判断方法。216 收藏 -
MySQL 备份恢复不能只看备份文件是否存在,还要保存并复核二进制日志文件、起始位置和停止位置。本文给出一套不依赖猜测的检查方法。216 收藏 -
Redis TTL 返回 -1 表示键存在但没有过期时间,-2 表示键不存在。本文用命令和 Go 分支示例区分三种状态,并排查普通 SET 覆盖、过期窗口和查询上下文不一致等常见原因。216 收藏 -
Redis ZINTERCARD 的 LIMIT 用于限制交集基数计算量:达到阈值即可提前结束,精确统计则使用默认无限制语义,并注意空 key、复杂度和集群多 key 边界。216 收藏 -
UNION报错“类型integer和text不能匹配”的根本原因是同位置列类型不兼容,必须显式转换每列类型,统一NULL标注、字符集校对、时间精度及时区,并避免依赖隐式升格。UNION报错“类型integer和text不能匹配”怎么办直接原因就是两个SELECT同位置列的类型不匹配,PostgreS215 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 错误处理 · 事务 · 存储过程 · 数据库运维 · MySQL存储过程 MySQL GET DIAGNOSTICS SQLSTATE MYSQL_ERRNO 事务异常处理
MySQL 存储过程中的异常处理不能只靠一个通用错误提示。GET DIAGNOSTICS 可以读取 SQLSTATE、MYSQL_ERRNO、MESSAGE_TEXT、NUMBER 和 ROW_COUNT,再把可审计的结果写入日志表;本文用订单入库事务说明诊断区读取、回滚与 RESIGNAL 的边界。215 收藏 -
MySQL 9.4 新增 server_memory 后,默认内存变量会怎样计算?本文用 SHOW VARIABLES 和启动参数拆开它与 temptable_max_ram、innodb_buffer_pool_size 的关系,并说明它为什么不是运行时内存上限。215 收藏 -
Redis 6.2 及以上可用 GETDEL 原子读取并删除字符串键,适合一次性登录令牌、确认码等场景。本文说明命中、空值、类型错误、旧版本 Lua 兼容和 TTL 边界。215 收藏 -
Redis ACL 的 key pattern 仍放行意外键,通常不是一个窄规则失效,而是旧的 ~*、selector、glob 范围或无 key 参数命令共同造成。本文用 ACL GETUSER、ACL DRYRUN 和 reset 重建方法定位并修正。215 收藏 -
数据库 · Redis | 1个月前 | Redis · 缓存 · 运维 · redis maxmemory maxmemory-policy volatile-lru noeviction allkeys-lfu
Redis 达到 maxmemory 后,volatile-lru、allkeys-lfu 和 noeviction 的行为并不相同。本文用一组可复核的键、命令和 INFO 指标,说明如何按数据是否允许淘汰来选择策略,并识别写入失败边界。213 收藏