-
应使用Redis的Hash或ZSet维护用户会话映射,新登录时先获取并删除旧会话缓存及黑名单,配合事务或Lua脚本保证并发安全,而非仅依赖EXPIRE。491 收藏 -
根本原因是COW导致RSS内存暴涨触碰maxmemory上限而被迫淘汰;bgsave时fork子进程触发Copy-On-Write,父进程修改内存页即复制物理页,临近maxmemory时瞬时内存增长直接触发淘汰。489 收藏 -
执行replicaofnoone再replicaof不会清空从库数据,仅切换复制源;真正全量同步需确保无运行复制流且master_replid/offset不匹配,必要时手动清空或重启从库。489 收藏 -
是的。shutdown默认执行同步RDB保存,前提是redis.conf中存在未注释的有效save规则(如save6010000),且磁盘空间充足、无阻塞命令;它会先落盘再断连最后退出。488 收藏 -
不能直接用@Primary切换Redis数据源,因其仅指定启动时默认Bean,无法运行时动态路由;需用ThreadLocal持有当前线程的ConnectionFactory,并配合AOP在方法级按需绑定与清理。487 收藏 -
主从同步断开时repl-backlog溢出会导致全量同步反复触发;需根据写入速率与最大重连时间估算合理大小,动态调整后须同步更新配置文件。487 收藏 -
Redis主从复制卡顿延迟飙升的典型表现是master_repl_offset与slave_repl_offset差值持续扩大、sync_full_ok频发,根本原因是fork子进程阻塞主线程,尤其内存大时fork耗时长导致repl-backlog溢出。485 收藏 -
通过redis-cli、RedisInsight、Prometheus和Grafana等工具,以及关注内存使用率、连接数、集群节点状态、数据一致性和性能指标,可以有效监控Redis集群的健康状态。484 收藏 -
RDB快照非实时落盘,依赖bgsave子进程异步生成,期间新写入数据不包含在本次快照中;AOF重写通过双缓冲保障新命令不丢失;混合持久化仅存储格式混合,写入仍按appendfsync策略执行。483 收藏 -
在Redis集群中查某个key的实时内存占用需先定位其所在slot和节点:用CLUSTERKEYSLOT算slot号,CLUSTERSLOTS查对应主节点IP:PORT,再连该节点执行MEMORYUSAGE;因官方redis-cli--cluster不支持透传该命令,且结果为估算值,需注意偏差与重试机制。482 收藏 -
应使用Redis的Hash或ZSet维护用户会话映射,新登录时先获取并删除旧会话缓存及黑名单,配合事务或Lua脚本保证并发安全,而非仅依赖EXPIRE。482 收藏 -
Redis过期事件非实时触发,仅在键被真正删除时发布__keyevent@0__:expired消息,存在延迟且不保证100%送达;需显式配置notify-keyspace-eventsEx,SpringBoot需正确配置RedisMessageListenerContainer并指定精确频道名。482 收藏 -
Redis不设maxmemory时不会触发淘汰机制,因默认策略noeviction且不启动任何淘汰逻辑,内存持续增长直至OOMKiller强杀进程。481 收藏 -
用RedisINFOstats的keyspace_hits和keyspace_misses实时计算命中率,低于70%且5分钟滚动均值持续异常即告警;结合DB空查询日志确认缓存穿透;布隆过滤器须前置、全量预热、与DB写操作强一致,拦截非法ID;对已存在但已失效的ID,通过空查日志聚类+内存黑名单防控。481 收藏 -
根本原因是RedisGEO基于zset实现,每个成员存原始坐标和geohash整数两份数据,且5.0前逐个解析导致跳表与哈希表频繁双更新,叠加浮点转geohash计算开销。480 收藏