-
短连接在Redis中严重伤性能,因其每次需完整TCP握手、认证、DB切换与释放,局域网下单次开销达1–3ms,超GET命令5–10倍,并引发TIME_WAIT端口耗尽。
-
主从同步突然变成全量复制,大概率因从节点偏移量超出主节点复制积压缓冲区范围;可通过inforeplication比对master_repl_offset、repl_backlog_first_byte_offset和repl_backlog_size判断是否缓冲区循环覆盖,再结合run_id是否变更、是否首次连接等排查。
-
要保护Redis数据不被未授权访问,应采取以下措施:1.设置强密码认证,使用requirepass配置项。2.绑定Redis到特定IP地址,如127.0.0.1。3.使用ACL设置不同用户权限。4.配置防火墙规则限制Redis端口访问。5.使用TLS加密Redis通信。通过这些措施,可以有效降低Redis数据泄露风险,确保应用安全性和稳定性。
-
AOF本质是只追加不修改的文本日志,通过重放命令恢复数据;appendfsync决定落盘策略,everysec为生产默认;SELECT因影响命令作用域被记录;BGREWRITEAOF基于内存快照重生成最小日志;no-appendfsync-on-rewrite可缓解重写时I/O竞争。
-
Redis集群中requirepass无效,因其仅作用于客户端端口(如6379),不约束集群总线端口(如16379);节点间通信明文进行,需依赖网络隔离、ACL及正确配置cluster-announce-ip等措施保障安全。
-
Jedissubscribe()会阻塞线程,必须在独立线程中调用;onMessage()是唯一消息处理入口;连接断开需手动重试;RedisMessageListenerContainer需设phase为Integer.MIN_VALUE以早初始化;Pythonredis-py要判type再取data并解码;频道名推荐小写点分隔,禁用通配符滥用;订阅端须加健康检查与自动恢复。
-
redis-check-aof--fix是唯一能直接修复尾部截断类AOF损坏的官方手段,但仅删除末尾无效字节,不恢复中间损坏或语义错误命令;遇Badfileformat错误需先备份、核对版本与路径,注意模块命令兼容性及系统层限制。
-
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集群默认不支持读写分离,所有请求均被重定向至主节点,从节点仅用于故障转移;如需读写分离,须弃用集群客户端,改用普通主从客户端自行路由。
-
能,从库可记录慢查询日志但需在redis.conf中显式配置slowlog-log-slower-than和slowlog-max-len,主库配置不自动同步,且慢日志为实例级本地行为。