redis 配置文件
1.基本网络配置
bind 127.0.0.1:默认情况下是环路配置,此时只允许本机中的客户端连接 redis server,可以修改为 0.0.0.0
允许在任意主机下进行连接
protected-mode yes:启用保护模式,在没有密码保护的情况下,Redis 只允许本地连接,这是为了防止未授权的访问,企业环境中通常会将此设置为 yes
并配置密码
port 6379:应用服务端口
2.持久化配置
RDB:快照配置项,定期保存数据快照,用于数据备份和灾难恢复
可以在 Redis 配置文件 redis.conf
中查找 dir
和 dbfilename
配置项,确定 RDB 文件的路径
如果你有一个备份的 RDB 文件,并希望恢复数据,你需要将备份的 RDB 文件复制到 Redis 服务器的工作目录,并替换现有的 dump.rdb
文件
save <seconds> <changes>:在指定时间内数据发生指定次数变更时触发快照,多个条件可以叠加
save 900 1 # 15分钟内至少有1个key发生变化
save 300 10 # 5分钟内至少有10个key发生变化
save 60 10000 # 1分钟内至少有10000个key发生变化
2
3
通过执行 BGSAVE
命令,可以手动生成 RDB 快照
stop-writes-on-bgsave-error yes:控制当 Redis 在执行后台保存(BGSAVE)操作时遇到错误时,是否停止接受写操作
redis 默认是开启 RDB 备份的,如果需要关闭 RDB 备份:
1.注释掉所有的 save 选项
2.将 stop-writes-on-bgsave-error 选项的值修改为 no,代表当 redis 执行 BGSAVE
命令发生错误时,仍然继续执行当前写操作
AOF:通过记录每一个写操作来实现持久化,Redis 会将所有的写操作命令追加到 AOF 文件中
可以通过查看配置文件中的 appendfilename
和 dir
配置项来确定 AOF 文件的位置
如果你有一个备份的 AOF 文件,并希望恢复数据,你需要将备份的 AOF 文件复制到 Redis 的工作目录,并替换现有的 AOF 文件
appendonly no:将其改为 yes
,以启用 AOF
appendfsync always:每次有写操作时都进行同步,最安全,但性能最差
appendfsync everysec:每秒同步一次,默认设置,平衡性能和安全性
appendfsync no:由操作系统自行决定何时进行同步,性能最好,但数据可能会丢失
随着时间的推移,AOF 文件可能会变得非常大,Redis 支持自动重写 AOF 文件以减小文件大小,这个过程会生成一个新的 AOF 文件,包含相同的数据但不包含重复或无效的命令
auto-aof-rewrite-percentage 100:AOF 文件大小增长超过上次重写后的100%时触发重写
auto-aof-rewrite-min-size 64mb:AOF 文件大小至少达到 64MB 时才能触发重写
3.内存管理配置
maxmemory <bytes>:设置 Redis 可以使用的最大内存,当 Redis 达到这个限制时,会根据指定的淘汰策略(如 maxmemory-policy
)删除旧数据,常用的单位有:kb、mb、gb
maxmemory-policy allkeys-lru:设置内存淘汰策略,常见的策略如 allkeys-lru
(最近最少使用淘汰)
其他的选项还有:
noeviction,当内存达到 maxmemory
限制时,不会驱逐任何数据。新写入操作将返回错误,读操作仍然可以正常进行
allkeys-lru:在所有键中使用 LRU(Least Recently Used,最近最少使用)算法淘汰最久未使用的数据
volatile-lru:只在设置了过期时间的键中使用 LRU 算法淘汰最久未使用的数据
allkeys-random:在所有键中随机淘汰数据
volatile-random:只在设置了过期时间的键中随机淘汰数据
等等...
4.日志和监控
loglevel notice:设置日志级别,notice
级别在企业中较为常用,能够记录重要的信息而不会生成过多的日志
logfile "/var/log/redis/redis.log":指定 Redis 日志文件的路径,企业中会将日志定向到指定的日志文件以便于统一管理和监控,如果将 logfile
设置为空字符串 ""
,意味着 Redis 不会将日志输出到文件,而是会将日志输出到标准输出
5.复制和高可用
redis 基本主从配置:
主节点(Master)配置:主节点无需特别的配置,默认情况下,Redis 实例会作为主节点运行
从节点(Slave)配置:在从节点的配置文件中,需要设置以下参数来指定主节点
slaveof <master-ip[主节点 IP ]> <master-port[主节点端口]>
如果主节点启用了密码验证,从节点也需要配置相应的密码
masterauth <master-password[主节点密码]>
在从节点启动时,会自动与主节点进行数据同步
replica-priority <priority>:用于设置从节点(Replica)的优先级,在主节点发生故障时会选择具有最高优先级的从节点作为新的主节点
slave-read-only yes:确保从节点只能执行读操作,避免数据不一致
6.安全配置
requirepass <password>:设置 Redis 的访问密码,确保只有授权的用户才能访问
rename-command CONFIG "":禁用或重命名敏感命令(如 CONFIG
),防止未授权用户修改 Redis 配置
7.性能优化
tcp-backlog 511:配置 TCP 连接的 backlog 队列大小,影响 Redis 在高并发场景下的连接处理能力
tcp-keepalive 300:设置 TCP keepalive 间隔,防止长时间未活动的连接占用资源