Redis 配置文件(通常为 redis.conf
)包含多种配置选项,可以调整 Redis 服务器的行为和性能。以下是 Redis 配置文件中的常见配置项及其详解:
常用配置项
1. 基本配置
-
bind
- 绑定的IP地址。如果你想让Redis监听多个IP地址,可以用空格分隔多个IP。
- 示例:
bind 127.0.0.1
-
port
- Redis 服务器的端口号。
- 示例:
port 6379
-
protected-mode
- 是否开启保护模式。在保护模式下,Redis只允许本地连接。
- 示例:
protected-mode yes
-
daemonize
- 是否以守护进程方式运行。
- 示例:
daemonize no
-
pidfile
- 守护进程模式下PID文件的路径。
- 示例:
pidfile /var/run/redis_6379.pid
-
logfile
- 日志文件的路径。如果设置为空,日志将输出到标准输出。
- 示例:
logfile ""
-
loglevel
- 日志级别。可选值为:
debug
,verbose
,notice
,warning
。 - 示例:
loglevel notice
- 日志级别。可选值为:
2. 内存管理
-
maxmemory
- Redis 允许使用的最大内存。当超过此值时,Redis将根据设置的驱逐策略(
maxmemory-policy
)进行内存回收。 - 示例:
maxmemory 256mb
- Redis 允许使用的最大内存。当超过此值时,Redis将根据设置的驱逐策略(
-
maxmemory-policy
- 内存使用到达最大值时的驱逐策略。可选值有:
noeviction
,allkeys-lru
,volatile-lru
,allkeys-random
,volatile-random
,volatile-ttl
。 - 示例:
maxmemory-policy noeviction
- 内存使用到达最大值时的驱逐策略。可选值有:
-
maxmemory-samples
- LRU和LFU算法使用的采样数量,采样越多结果越准确,但开销也更大。
- 示例:
maxmemory-samples 5
3. 持久化
-
save
- RDB持久化的配置,指定在多长时间内有多少次写操作后进行快照。
- 示例:
save 900 1
(900秒内至少有1次写操作)
-
rdbcompression
- 是否对RDB文件进行压缩。
- 示例:
rdbcompression yes
-
rdbchecksum
- 是否在RDB文件中进行校验和,确保数据完整性。
- 示例:
rdbchecksum yes
-
dbfilename
- RDB文件的名字。
- 示例:
dbfilename dump.rdb
-
dir
- 数据库文件的存储路径。
- 示例:
dir /var/lib/redis
-
appendonly
- 是否开启AOF持久化。
- 示例:
appendonly no
-
appendfilename
- AOF文件的名字。
- 示例:
appendfilename "appendonly.aof"
-
appendfsync
- AOF文件同步策略。可选值有:
always
,everysec
,no
。 - 示例:
appendfsync everysec
- AOF文件同步策略。可选值有:
4. 网络配置
-
timeout
- 客户端闲置多长时间后关闭连接。0表示不关闭。
- 示例:
timeout 0
-
tcp-keepalive
- TCP keepalive的时间间隔,以秒为单位。
- 示例:
tcp-keepalive 300
-
tcp-backlog
- TCP连接队列的大小。
- 示例:
tcp-backlog 511
5. 高可用
-
slaveof
- 配置当前实例为另一个Redis服务器的从服务器。
- 示例:
slaveof 127.0.0.1 6379
-
masterauth
- 如果主服务器设置了密码保护,从服务器需要提供密码。
- 示例:
masterauth mypassword
-
replica-serve-stale-data
- 从服务器在与主服务器失去连接时是否继续提供旧数据。
- 示例:
replica-serve-stale-data yes
-
replica-read-only
- 从服务器是否设置为只读。
- 示例:
replica-read-only yes
6. 安全
-
requirepass
- 设置连接Redis服务器需要的密码。
- 示例:
requirepass mypassword
-
rename-command
- 重命名或者禁用某个命令。禁用某个命令可以提高安全性。
- 示例:
rename-command FLUSHALL ""
7. 性能优化
-
hll-sparse-max-bytes
- HyperLogLog数据结构的稀疏表示的最大字节数。
- 示例:
hll-sparse-max-bytes 3000
-
latency-monitor-threshold
- 配置Redis记录延迟超过指定阈值的命令。
- 示例:
latency-monitor-threshold 100
-
notify-keyspace-events
- 配置键空间通知。
- 示例:
notify-keyspace-events ""