ubuntu

Ubuntu下Redis性能调优有哪些技巧

小樊
41
2025-08-07 17:58:05
栏目: 云计算

以下是Ubuntu下Redis性能调优的核心技巧,涵盖配置、内存、持久化、集群等多方面:

  1. 系统环境优化

    • 禁用透明大页(THP):执行 echo never > /sys/kernel/mm/transparent_hugepage/enabled,避免内存分配延迟。
    • 调整内核参数:优化 vm.swappiness(建议设为10-30)、net.core.somaxconn(增大TCP连接队列)。
  2. Redis配置优化

    • 内存管理
      • 设置 maxmemory 限制内存使用,搭配 maxmemory-policy(如 allkeys-lru 淘汰策略)。
      • 启用内存碎片整理(需定期执行 MEMORY PURGE)。
    • 持久化策略
      • RDB:适合备份,配置 save 参数控制快照频率(如 save 900 1)。
      • AOF:开启 appendonly yes,设置 appendfsync everysec 平衡性能与数据安全。
      • 混合持久化(Redis 4.0+):aof-use-rdb-preamble yes,结合RDB快照和AOF增量。
    • 网络与连接
      • 绑定内网IP,限制 maxclients 避免连接数过多。
      • 启用TCP keepalive(tcp-keepalive 300)防止连接超时。
  3. 数据结构与操作优化

    • 用哈希表(Hash)替代多个字符串键,节省内存。
    • 短化键名和字段名,减少内存占用。
    • 避免大Key(单Key数据量建议<10KB),大Value可分片存储。
    • 使用管道(Pipeline)批量操作,减少网络往返延迟。
  4. 集群与高可用

    • 主从复制:配置 replicaof 实现读写分离,提升读性能。
    • Redis Cluster:分片存储数据,支持高并发和自动故障转移。
    • 哨兵模式:监控主节点状态,实现故障自动切换。
  5. 监控与维护

    • 使用 redis-cli --stat 或第三方工具(如Prometheus+Grafana)监控内存、QPS、延迟等指标。
    • 定期执行 INFO memory 分析内存使用,清理冗余数据。
    • 避免在生产环境直接使用 FLUSHALL,优先通过业务逻辑清理数据。

参考来源

0
看了该问题的人还看了