-
发布订阅模式适合实时性要求极高、可容忍消息丢失、一对多广播型通知场景,如服务状态广播、实时日志分发、WebSocket用户事件广播;Stream适合需持久化、至少一次投递、支持消费者组与重试的场景,如订单异步处理、用户行为埋点、审计日志归档。452 收藏 -
不能。Redis6–7.0的ACL不支持Key前缀通配符(如~tenant:a:),仅支持字面Key名或~;7.0起虽有实验性前缀匹配,但生产未验证且不支持嵌套通配。452 收藏 -
volatile-lru适合电商购物车场景,但需为每个购物车key显式设置TTL并定期刷新;它仅淘汰带过期时间的key,采样随机且保守,不适用于依赖访问频次的场景。450 收藏 -
RedisPub/Sub不支持优先级,仅为瞬时广播;真正优先级队列需用List+BRPOP多键轮询,按queue:high→queue:medium→queue:low顺序原子消费,Pub/Sub仅作轻量通知触发器。441 收藏 -
主节点磁盘满导致bgsave失败,进而使从节点全量同步卡在wait_bgsave状态;需通过df-h查Redis实际dir路径磁盘使用率、日志中“Nospaceleftondevice”报错及infopersistence中rdb_bgsave_in_progress异常确认。436 收藏 -
Redis发布订阅怕大Key是因为PUBLISH不校验消息大小,大Payload会阻塞单线程主线程,导致延迟飙升、内存积压;应用层需在序列化后截断或拒绝超限消息(如>100KB),订阅端须预检长度并禁用自动解码,大Payload场景应改用SET+key事件、DB查询或Kafka等替代方案。433 收藏 -
SpringBoot中@Cacheable不支持动态过期时间,因SpringCache抽象层仅支持全局TTL配置;需通过RedisTemplate手动设expire、多CacheManager配置或自定义RedisCacheWriter实现差异化TTL。432 收藏 -
SINTER是Redis中计算共同好友唯一靠谱、原子、高效的方式,它基于内存集合运算,自动选取最小集合优化性能,毫秒级返回结果,避免网络往返与客户端计算开销。430 收藏 -
RedisPub/Sub不直接产生内存碎片,但未清理的订阅连接、消息积压或缓冲区配置不当会推高used_memory_rss,导致mem_fragmentation_ratio偏高,形成“假性碎片”;真实碎片源于键值对频繁增删改,而Pub/Sub缓冲区不受active-defrag影响。430 收藏 -
CLUSTERKEYSLOT仅执行CRC16(key)mod16384计算,返回0–16383的槽号,不查询集群拓扑或节点信息;定位具体实例需配合CLUSTERSLOTS或CLUSTERNODES查找槽所属节点。429 收藏 -
LFU频率计数器非线性增长,由lfu-log-factor和lfu-decay-time共同调控:访问按概率递增且增幅随当前值增大而衰减,初始值为5、上限255;衰减每lfu-decay-time分钟执行一次右移1位。424 收藏 -
Redis卡顿是设计使然,因其单线程模型下Lua脚本原子独占主线程,执行长耗时操作会阻塞所有请求,包括过期、AOF、心跳等;复杂聚合应迁出至应用层。424 收藏 -
RedisCluster故障转移由主节点失联且多数主节点投票确认触发;从节点需满足复制偏移量达标、获多数主节点投票才能当选新主。423 收藏 -
dump.rdb文件越积越多是因为Redis默认不自动清理旧快照,每次bgsave生成新文件但保留旧文件,需依赖外部脚本按时间戳安全清理。422 收藏 -
Redis6.0+的Pub/Sub不阻塞主线程,因消息分发改由独立客户端上下文异步处理;而5.x及更早版本中publish同步遍历订阅者,网络慢或缓冲区满时会阻塞主线程。417 收藏