面试题答案
一键面试一、Redis集群初始化参数调优配置
- 内存参数
- maxmemory:根据服务器可用内存,合理设置Redis最大内存,避免内存使用过度导致服务器性能下降或OOM。例如,如果服务器有16GB内存,扣除操作系统和其他应用预留4GB,可设置
maxmemory 12GB
。 - maxmemory - policy:选择合适的内存淘汰策略,如
allkeys - lru
(对所有键使用LRU算法淘汰),适用于大部分缓存场景,能优先淘汰最近最少使用的键,保证热点数据留在内存中。
- maxmemory:根据服务器可用内存,合理设置Redis最大内存,避免内存使用过度导致服务器性能下降或OOM。例如,如果服务器有16GB内存,扣除操作系统和其他应用预留4GB,可设置
- 网络参数
- bind:绑定到指定的IP地址,只允许通过指定IP访问Redis,增强安全性。如
bind 192.168.1.100
,限制只能通过该IP连接。 - port:设置Redis监听端口,默认6379,如在多实例部署时可根据需求修改,避免端口冲突。
- tcp - keepalive:设置TCP连接保活时间,防止长时间空闲连接占用资源。如设置为
tcp - keepalive 60
,表示60秒发送一次保活探测包。
- bind:绑定到指定的IP地址,只允许通过指定IP访问Redis,增强安全性。如
- 持久化参数
- RDB:
- save:定义RDB快照的触发条件,如
save 900 1
表示900秒内如果有1个键被修改则进行快照。可根据数据重要性和允许的数据丢失时间来调整。 - rdbcompression:开启RDB文件压缩,减少文件大小,但会增加CPU开销。一般开启,设置为
yes
。
- save:定义RDB快照的触发条件,如
- AOF:
- appendonly:开启AOF持久化,设置为
yes
,保证数据的高可靠性,将写操作追加到AOF文件。 - appendfsync:设置AOF文件同步策略,
always
每次写操作都同步,数据安全性最高但性能最低;everysec
每秒同步一次,是性能和数据安全的较好平衡;no
由操作系统决定同步时机,性能最高但数据丢失风险大。高并发场景建议使用everysec
。
- appendonly:开启AOF持久化,设置为
- RDB:
- 复制参数
- replicaof:设置主从复制关系,格式为
replicaof <masterip> <masterport>
,如replicaof 192.168.1.101 6379
,将当前节点设置为指定主节点的从节点。 - repl - backlog - size:设置复制积压缓冲区大小,用于主从节点断连后重连时的部分重同步。根据网络状况和数据量估算大小,如高并发大数据量场景可设置为
repl - backlog - size 1024mb
。
- replicaof:设置主从复制关系,格式为
二、慢查询排查与初始化参数优化
- 检查内存参数
- maxmemory - policy:确认淘汰策略是否合理,若不合理可能导致频繁淘汰热点数据,使得查询变慢。例如,如果使用
noeviction
策略,当内存满时新写入操作会被拒绝,影响查询性能。可根据业务调整为合适的淘汰策略。 - 内存碎片:使用
INFO memory
查看mem_fragmentation_ratio
指标,若该值远大于1,表示内存碎片率高,可通过重启Redis(在业务允许的情况下)或使用MEMORY PURGE
命令(Redis 4.0+)尝试整理内存碎片,提高内存使用效率。
- maxmemory - policy:确认淘汰策略是否合理,若不合理可能导致频繁淘汰热点数据,使得查询变慢。例如,如果使用
- 检查网络参数
- 网络带宽:监控服务器网络带宽使用情况,若带宽跑满可能导致数据传输延迟,引起慢查询。可以升级网络带宽或优化网络配置,如调整TCP窗口大小等。
- 连接数:查看
INFO clients
中的connected_clients
数量,若连接数过多可能耗尽系统资源导致性能下降。可适当调整maxclients
参数,限制客户端连接数,同时优化客户端连接管理,及时关闭空闲连接。
- 检查持久化参数
- RDB:检查RDB快照频率是否过高,频繁的快照操作会占用CPU和磁盘I/O资源,影响查询性能。可适当延长RDB触发时间间隔。
- AOF:查看AOF同步策略,若设置为
always
且写入量很大时,频繁的磁盘I/O可能导致慢查询。可尝试调整为everysec
策略,并观察性能变化。同时检查AOF文件大小,若文件过大可进行重写(BGREWRITEAOF
命令),减少文件体积。
- 检查复制参数
- 主从复制延迟:通过
INFO replication
查看主从复制延迟情况,若延迟过高,从节点数据可能滞后,查询到的数据不是最新的,影响业务。可检查网络连接是否稳定,调整repl - timeout
参数适当延长复制超时时间,确保主从数据同步正常。 - 从节点数量:若从节点过多,主节点同步数据压力增大,可能导致慢查询。可根据业务需求合理控制从节点数量,或采用分层复制结构减轻主节点压力。
- 主从复制延迟:通过