IT评测·应用市场-qidao123.com技术社区

标题: Redis性能优化:全网最全的一篇 [打印本页]

作者: 愛在花開的季節    时间: 2025-1-3 00:44
标题: Redis性能优化:全网最全的一篇
硬件


CPU


内存


磁盘


网络


  1. net.core.somaxconn = 1024
  2. net.ipv4.tcp_max_syn_backlog = 2048
复制代码

操作系统

操作系统的配置对 Redis 的性能影响显著。通过合理配置操作系统,可以充分发挥硬件性能,提升 Redis 的处理惩罚本事。

内存锁定与交换


  1. maxmemory-policy noeviction
复制代码

  1. vm.swappiness = 1
复制代码

文件系统和磁盘I/O优化


  1. * soft nofile 65536
  2. * hard nofile 65536
复制代码

  1. vm.max_map_count = 262144
复制代码
在 /etc/sysctl.conf 中设置后运行 sysctl -p 使配置见效。

网络参数调优


  1. net.ipv4.tcp_fin_timeout = 15
  2. net.ipv4.tcp_keepalive_time = 300
复制代码

Redis实例调优

Redis 配置优化直接影响 Redis 的性能体现。合理配置 Redis 参数,可以提高读写效率,减少壅闭和瓶颈。

内存管理


持久化配置


  1. save 900 1
  2. save 300 10
  3. save 60 10000
复制代码

网络优化


  1. maxclients 10000
复制代码


Schema设计优化


选择合适的数据类型


减少键的大小



利用 Hash 数据类型来压缩存储

Redis 的 Hash 适合存储多个字段的对象,当字段较少且值较短时,利用 Hash 可以显著减少内存占用。Redis 会将小型 Hash 以 ziplist(压缩列表)的情势存储,这样可以减少内存占用。

  1. hash-max-ziplist-entries 512
  2. hash-max-ziplist-value 64
复制代码

利用压缩列表(ziplists)来存储小的 List 和 Set

对于小型的 List 和 Set,Redis 可以利用 ziplist(压缩列表)和 intset(整数聚集)来节流内存。压缩列表是一种更紧凑的存储格式,可以有效减少内存占用。

  1. list-max-ziplist-entries 512
  2. list-max-ziplist-value 64
复制代码


利用更紧凑的编码格式

利用 Sorted Set 的压缩格式:对于小型的 Sorted Set,可以利用 ziplist 来存储,减少内存占用。调解 zset-max-ziplist-entries 和 zset-max-ziplist-value 参数。比方:
  1. zset-max-ziplist-entries 128
  2. zset-max-ziplist-value 64
复制代码

数据分片与集群优化


避免大键值对(Big Keys)



减少内存占用

毕竟是内存,金贵

上面的数据结构优化


数据压缩


  1. aof-use-rdb-preamble yes
复制代码


减少内存碎片


  1. MEMORY PURGE
复制代码


减少逾期键的内存占用


精简数据存储

● 归并重复的数据:对于存储结构相似或内容重复的数据,可以考虑利用更高效的存储方式来减少内存占用。比方,利用共享字符串(String Interning)或引用计数技能,避免冗余数据存储
● 利用 HyperLogLog 和 Bitmap:对于某些数据统计场景,可以利用 HyperLogLog 和 Bitmap 数据结构来替换传统的 Set 或 List 存储方式。这些数据结构具有更低的内存占用,可以在一定范围内提高数据存储的紧凑性。
○ HyperLogLog:适用于大规模去重计数的场景,比方 UV 统计。它利用概率算法,在牺牲部门精度的环境下,可以大幅减少内存利用。
○ Bitmap:适用于布尔值存储和二进制数据处理惩罚,比方位图索引、状态标志等场景

写入优化

写入性能是 Redis 性能优化的一个重要方面。通过优化写入策略,可以显著提高 Redis 的吞吐量和响应时间。

批量写入


异步写入


减少写操作



查询优化

优化查询性能是 Redis 性能优化的另一个关键环节。通过合理的查询策略和命令选择,可以显著提高 Redis 的查询效率。

利用命令的批量处理惩罚


合理利用缓存


优化数据结构查询


减少内存碎片



监控与调优


性能监控


参数调优


慢查询优化


集群调优


   大家在redis实例优化和schema设计优化有什么想法,欢迎评论




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4