node-redis 发布 6.4.0-beta.0,引入实验性的多数据库客户端,同时带来客户端缓存新模式、BLESS 命令族、HNSW 向量压缩以及大量连接与集群修复。
多数据库客户端
createMultiDbClient、createMultiDbClientPool、createMultiDbCluster、createMultiDbSentinel 四个入口,可以连接多个 Redis 端点,通过健康检查和熔断器在活动端点失效时把流量切到健康端点。
这个能力解决的是此前要在应用层自己实现的问题:多个 Redis 实例之间的故障切换。以前要么依赖代理层,要么自己写探测逻辑。现在下沉到客户端库。
注意它标记为 experimental,API、事件和配置在稳定版前可能变更。生产环境要用的话,建议封装一层隔离,方便后续调整。
客户端缓存的 OPTIN / OPTOUT
新增 OPTIN 和 OPTOUT 两种 tracking 模式,带 cacheable 谓词和 per-call 缓存选项。之前客户端缓存是全局开关,现在可以按调用控制——这对混合工作负载很关键:热点键走缓存,强一致要求的键绕过。
另外新增 strict 选项:给不可缓存的命令打上 cache: true 标记时直接拒绝而不是只打日志。这个配置适合开发和测试环境,能在早期暴露错误的缓存假设。
BLESS 命令族
BLESS SET / GET / CLEAR / SCAN,其中 BLESS SCAN 会跨所有集群主节点路由。
向量与搜索增强
HNSW 向量字段新增 COMPRESSION(SQ8)和 TRAINING_THRESHOLD;FT.SEARCH 支持 WITHSCORES、EXPLAINSCORE、WITHPAYLOADS、WITHSORTKEYS、FILTER、GEOFILTER 和 PAYLOAD。向量检索的内存占用一直是瓶颈,SQ8 量化值得实测。
40 个修复集中在哪
连接与重连、集群与哨兵、pub/sub、RESP 类型映射、命令参数。基本都是长期存在的边界问题,说明这次在稳定性上投入不少。
升级建议
这是 beta。新能力单独评估,但那 40 个修复本身可能就是升级理由——如果线上遇到过 reconnect 循环或 pub/sub 状态残留,可以先在预发布环境试。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。