鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

Redis服务端调优

目的

通过调整Redis参数来提升Redis的性能。

方法

每个Redis实例的参数可以通过编辑redis.conf文件进行配置,用户需要根据实际需要选择最适合自己应用场景的同步策略。

参数

含义

默认值

取值

appendfsync

该参数指定了Redis在将数据写入磁盘时的同步策略,具体含义如下:

  • no:Redis不进行磁盘同步,只是将数据写入内存缓存中,OS在需要的时候将数据同步到磁盘。这种方式最快,但是数据会在Redis重启或者崩溃时丢失。
  • always:每次Redis执行写操作时都会将数据同步到磁盘,保证数据的持久化。这种方式最安全,但是会降低Redis的性能。
  • everysec:Redis每秒钟将数据同步到磁盘一次,保证数据的持久化。这种方式是默认的同步策略,可以在一定程度上保证数据的安全性和Redis的性能。

everysec

  • no
  • always
  • everysec

appendonly

该参数用于指定是否启用Redis的持久化功能。

当该参数设置为yes时,表示启用Redis的持久化功能。Redis运行时将使用“append-only文件”来记录所有写入操作。

no

  • yes
  • no

cluster-require-full-coverage

该参数用于指定集群中是否需要所有槽位都被分配到节点上,即是否需要完全覆盖。

默认情况下如果一个槽位没有被分配(该槽位没有分配可用的实例),那么Redis集群会停止接受查询请求,在这种情况下,如果集群部分实例故障(例如一部分槽位没有被覆盖),那整个集群也将不可用。一旦所有槽位被分配,集群会自动变为可用。

yes

  • yes
  • no

maxmemory

该参数用于限制Redis占用的最大内存大小。单位为MB。

1024

1~1048576

maxmemory-policy

该参数用于指定在达到最大内存限制时执行数据清除策略。可在以下8个行为中选择:

  • volatile-lru:在过期键中使用LRU算法选择要清除的键。
  • allkeys-lru:在所有键中使用LRU算法选择要清除的键。
  • volatile-random:在过期键中随机选择要清除的键。
  • allkeys-random:在所有键中随机选择要清除的键。
  • volatile-ttl:清除最快过期的键。
  • allkeys-smart:使用冷却算法在所有的键中选择一个进行清除。
  • volatile-smart:使用冷却算法在设置了过期时间的键中选择一个进行清除。
  • noeviction:不会清除任何键,执行写操作时返回错误。

noeviction

  • volatile-lru
  • allkeys-lru
  • volatile-random
  • allkeys-random
  • volatile-ttl
  • allkeys-smart
  • volatile-smart
  • noeviction

rdbchecksum

该参数用于设置是否开启RDB校验。为了避免RDB持久化文件出错,建议开启RDB校验。

yes

  • yes
  • no

rdbcompression

该参数用于控制Redis在执行RDB持久化时是否对数据进行压缩。

yes

  • yes
  • no

stop-writes-on-bgsave-error

该参数用于控制当Redis在执行后台持久化操作(bgsave)时出现错误时的行为。

如果该参数设置为yes,则当Redis在执行bgsave操作出现错误时,Redis将停止接受写操作,直到管理员手动处理并解决bgsave错误。

yes

  • yes
  • no

activerehashing

该参数用于控制是否重置hash表。

设置成yes后,redis将每100毫秒使用1毫秒CPU时间来对Redis的hash表重新hash,可降低内存的使用。当使用场景有较为严格的实时性需求时,把这项配置为no;如果没有严格的实时性要求,可以设置为yes,以便能尽可能快地释放内存。

no

  • yes
  • no

activedefrag

该参数用于控制是否启用碎片整理功能。

当设置为yes时,Redis会在内存使用率超过指定阈值时,自动进行碎片整理,以减少内存碎片和提高内存使用效率。

no

  • yes
  • no