-
Redis集群不处理小文件,RDB压缩是单节点操作;每个主节点独立生成并压缩dump.rdb,仅支持内置LZF压缩,高率压缩需备份后用zstd等外部工具完成。
-
托管Redis需连云平台提供的主节点或只读地址,不可用slaveof;集群版默认仅支持db0;RedisConnectionFactory不可热刷新;主从延迟属正常现象,强一致读应直连主节点。
-
everysec模式下主线程不阻塞,而是将fsync请求提交给后台线程异步执行;实际落盘延迟受I/O负载和内核参数影响,可能数秒甚至失败,连续两次失败则降级为no;监控aof_pending_bio_fsync和aof_delayed_fsync可判断磁盘I/O是否瓶颈。
-
Redis原生String类型无法解析JSON字段,必须用RedisJSON模块实现路径查询、原子更新等能力;启用需加载模块,使用JSON.SET/JSON.GET命令,性能提升体现在频繁子字段操作场景。
-
LTRIM是限制RedisList长度的唯一可靠方式,因其原子性、精准截断和内存即时释放特性;必须配合LPUSH使用,错误参数会清空列表,高并发下推荐Lua脚本保障原子性。
-
MAXLEN是RedisStreams唯一实时限长方式,必须与XADD原子配合使用;~N为近似保留,N为严格上限;XTRIM仅作兜底,非实时;语法中MAXLEN须紧随stream名后,错位即报错。
-
能,从库可记录慢查询日志但需在redis.conf中显式配置slowlog-log-slower-than和slowlog-max-len,主库配置不自动同步,且慢日志为实例级本地行为。
-
能,但需满足版本一致、关闭AOF、RDB文件路径和名称匹配、权限正确等硬性条件,否则启动报错或数据不一致。
-
MySQL数据归档主要有四种方式。1.使用SQL语句手动归档,通过INSERT和DELETE迁移历史数据,适合小规模场景但需注意事务控制、索引影响和备份确认;2.利用事件调度器实现定时自动归档,可设定周期任务并建议配合分区使用以减少性能影响;3.结合时间分区表进行归档,提升查询效率且操作整个分区更高效,但存在分区键设计限制;4.借助第三方工具如pt-archiver或mysqldump,前者支持边归档边删除并控制资源占用,后者适用于低频小规模归档。根据数据量和业务需求选择合适方法,小型项目可用SQL+事件
-
推荐用base64url编码6字节随机数生成短码,冲突概率低且不可预测;需先EXISTS校验再写入,跳转用Lua脚本原子读URL并INCR计数,Redis用String类型存short:{code}→URL,设EX过期,stat:{code}单独存访问量。
-
RedisLua脚本无法实现SCAN分页,因脚本无状态且无法维护游标;唯一可行方案是客户端驱动SCAN分页,Lua仅负责单次结果的模式匹配与截取。
-
首要排查项是repl-timeout,默认60秒,主从间REPLCONFACK延迟超时即断连;需主从同时调大该值,如设为120秒,并排查TCP保活、输出缓冲区、系统连接限制及ACK抖动等隐性瓶颈。
-
不能直接用@Primary切换Redis数据源,因其仅指定启动时默认Bean,无法运行时动态路由;需用ThreadLocal持有当前线程的ConnectionFactory,并配合AOP在方法级按需绑定与清理。
-
客观下线(ODOWN)需多个哨兵通过Gossip协议交换信息并达成quorum共识;quorum是sentinel.conf中配置的最小同意数,非哨兵总数,设为1则退化为主观下线;哨兵间通过SENTINELis-master-down-by-addr命令探测,超时未响应将导致无法凑够quorum;Gossip异步、无中心、带超时,不保证强一致,以换取快速故障发现与低带宽开销;验证ODOWN应使用SENTINELmasters检查flags是否含odown,而非仅依赖+sdown日志。
-
新消费者收不到旧消息是因为XGROUPCREATE默认从最新偏移($)开始消费,不自动回溯;需显式指定起始ID0或用XREADGROUPSTREAMSmystream0补读,且必须及时XACK避免重复分配。