#Redis# 优化思路

63 阅读1分钟

服务端优化

  • 使用 lazy-free 模式进行惰性删除
  • 设置 Redis 占用的内存空间,避免过大内存时,启用了虚拟内存(磁盘上的空间)来保存数据
  • 选用适当的内存淘汰策略(LRU\LFU)
  • 禁用内存大页(每次申请内存会耗更多的时间)
  • 在物理机上部署 Redis 而不是在虚拟机中,避免宿主机器的复杂网络和 cpu 负载
  • 使用 slowlog 慢日志来记录耗时的命令
  • 数据持久化策略的选用(RDB\AOF\混合)
  • 确保网络带宽的质量
  • 可适当选择开启主从复制、哨兵模式、集群模式提供提高系统可用性

客户端优化

  • 避免 bigkey
    • 拆分大 key 成多个 key 存放数据
  • 防止大量数据集中过期(固定过期时间+范围随机数)
  • 选用合适的数据结构(String、Hash、List、Set、Sorted Set)保存数据
  • 使用 pipeline 管理批量操作数据
  • 集合的交、并、差集操作尽量不要在 Redis 服务器上做
  • 避免长耗时的操作命令,如 key * , hgetall 等
  • 使用 Redis 线程池来复用连接,而不是频繁创建、销毁连接