---
title: Redis服务端调优
description: "通过调整Redis参数来提升Redis的性能。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/ecosystemEnable/Redis/kunpengredishdp_05_0019.html
sourcePath: /source/zh/kunpengdbs/ecosystemEnable/Redis/kunpengredishdp_05_0019.html
indexId: 331beb643f212df3315424b786745fe8e47228316e02831d5e1e13e0f302baef72
---
# 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 | 该参数用于控制是否对Redis的hash表重新hash。 设置成yes后，Redis将每100毫秒使用1毫秒CPU时间来对Redis的hash表重新hash，可降低内存的使用。当使用场景有较为严格的实时性需求时，把这项配置为no；如果没有严格的实时性要求，可以设置为yes，以便能尽可能快地释放内存。 | no | yes no |
| activedefrag | 该参数用于控制是否启用碎片整理功能。 当设置为yes时，Redis会在内存使用率超过指定阈值时，自动进行碎片整理，以减少内存碎片和提高内存使用效率。 | no | yes no |
