答:应用的键名冲突靠命名空间、完整标识和必要时 SET NX 解决。内部字典哈希碰撞会继续比对完整键,不会把两个不同字符串视为同一个键。
答:很多缓存同时失效或缓存服务整体不可用,回源请求一起冲进数据库,就是常说的雪崩。错峰过期、限流、预热和降级可减少冲击。
答:可能是某条慢命令、主线程排队、内存回收、持久化、网络拥塞或客户端池耗尽。先对齐请求时间和服务端指标。
答:先取慢日志和延迟事件,再按命令、键大小、时段和来源筛选。查看 CPU、内存、网络、持久化及复制状态,判断资源在哪一步用完。
答:客户端分片是在应用或代理里按键选 Redis 节点。简单方案对固定节点数量取模,一致性哈希等方案减少扩缩容时的键迁移。Redis Cluster 有自身的槽位协议。
答:把节点与键放到同一个哈希环。键沿固定方向找到第一个节点。增加节点时,通常只接走它与前一个节点之间的键,删除时把该段交给下一节点。
答:简单队列可用 List。需要记录消息、消费组、确认与重领时,优先考虑 Streams。Pub/Sub 适合在线通知,断线期间的消息不会补送。
答:客户端订阅频道或匹配模式,发布者向频道发消息,在线订阅者即时收到。Cluster 另有按槽分片的 Pub/Sub。普通发布订阅是至多一次。
答:当缓存不可用、重建很慢或回源压力过高时,可以返回允许的旧值、简化结果或按优先级拒绝一部分请求,同时限制回源并发。
答:预热是在流量到来前把常访问的数据放入缓存。更新是数据改变或缓存临近到期后,按业务规则使它失效、刷新或重新填充。