#Redis
共 22 篇文章
CF.INFO 报错后 Mono 一直不结束
Lettuce 7.7 的 Reactive 复杂结果命令可能在服务端错误后等到 timeout。7.8.0 调整了错误检查顺序,恢复 onError;仍需处理原来的 Redis 错误。
Lettuce 缺少 jdk.net
jlink 镜像缺少 jdk.net 时,Lettuce 7.5.2 的 NIO 保活探测可能让应用启动失败。采用含修复的兼容客户端,或在原模块列表中补齐 jdk.net。
Lettuce 返回已删除 ID
Redis 7 的 XAUTOCLAIM 删除 ID 数组曾被旧版 Lettuce JUSTID 解析为已领取消息。Lettuce 7.8.0 修复后,用 getMessages 与 getDeletedIds 分开处理。
BullMQ 任务一直 waiting:Queue 与 Worker 的 prefix 不一致
Queue和Worker前缀不一致会访问不同命名空间。对照endpoint、db、队列名称和prefix,处理旧任务归属,不盲目重命名Redis键。
redis.asyncio 报 attached to a different loop
已建立异步连接属于创建循环。按应用和测试真实生命周期创建、复用并关闭,区分TestClient portal、fixture与旧teardown重复清理。
Redis 写入报 MISCONF,RDB 保存提示 Permission denied
Redis 写入返回 MISCONF,日志同时显示 RDB 保存 Permission denied。核对实际数据目录、服务进程身份和权限,修正后验证后台保存真正完成,避免把关闭停写保护误当成持久化恢复。
BullMQ Worker 报 maxRetriesPerRequest must be null
Worker传入已有ioredis需要符合后台重试规则。单独配置消费者连接,保留HTTP生产者有界等待、错误处理和共享连接关闭顺序。
BullMQ 提示 volatile-lru:队列能否共用缓存 Redis
BullMQ需要noeviction后端。区分启动警告与Redis命令错误,检查共享缓存的淘汰需求,并保留容量、写入失败与任务留存边界。
Redis Cluster 已 SCRIPT LOAD 仍报 NOSCRIPT:缓存不属于整个集群
集群中脚本加载与执行可能落到不同节点。传入真实 KEYS,保留源码与 NOSCRIPT 补载,区分跨槽、流水线和未知执行状态。
BullMQ CPU 密集任务 stalled:事件循环阻塞了锁续期
确认同步CPU阻塞后,将计算放入外部processor,保留锁恢复和幂等。异步等待偶发stalled仍需另查连接与进程,不用无限续锁掩盖故障。
redis-py 读取 pickle 数据时报 UnicodeDecodeError
二进制值不能保证UTF-8。配置明确的binary客户端或按字段解码,保留pool和调用方类型契约,不用hiredis或忽略字节隐藏错误。
Redis 写入报 READONLY:先确认节点角色和主写入端点
读请求正常而写入落到只读副本时,核对 ROLE、应用连接池与 Sentinel 主节点发现;不以关闭只读保护或盲目提升副本处理。
Redis 连接报 NOAUTH 或 WRONGPASS
Redis 客户端报 NOAUTH 或 WRONGPASS 时,检查认证参数、实际加载的配置与 ACL 用户状态;若认证通过后出现 NOPERM,再核对命令和键权限。
Redis GETSET 更新值后 TTL 变成 -1
GETSET 会清除键原有过期时间。按 Redis 版本选择 SET KEEPTTL 或 GET KEEPTTL,保留截止时间,并处理键已消失和无有效期的分支。
Redis 单个 HGETALL 正常,遍历 scan_iter 却报 WRONGTYPE:检查混合类型
redis-py 单个 Hash 能读,遍历 scan_iter 却报 WRONGTYPE,按实际数据类型过滤,区分 bytes 键误转 str 与不存在的键,保留并发和重复处理边界。


