Redis 的配置文件为 redis.conf
,用于控制服务器行为,如端口、持久化、内存管理等。默认配置文件通常位于安装目录或 /etc/redis/redis.conf
(Linux)。以下是配置的核心内容和操作步骤。
1. 查找配置文件
- Linux:通常在
/etc/redis/redis.conf
或 Redis 安装目录下的redis.conf
。 - MacOS(Homebrew):运行
brew info redis
查看路径,通常为/usr/local/etc/redis.conf
。 - Windows(Docker/WSL):配置文件需手动指定或映射。
- 源码安装:在源码目录中找到
redis.conf
.
查看命令:
redis-server --version # 检查版本
find / -name redis.conf # 查找配置文件(Linux)
2. 编辑配置文件
使用文本编辑器(如 nano
、vim
)修改 redis.conf
:
sudo nano /etc/redis/redis.conf
提示:编辑前备份文件:
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak
3. 常用配置项
以下是 redis.conf
中常见且重要的配置项及其说明:
3.1 基本设置
- 绑定地址(默认只允许本地连接):
bind 127.0.0.1
- 修改为
0.0.0.0
允许远程连接(注意安全)。 - 端口:
port 6379
- 可更改为其他端口,如
6380
. - 守护进程运行:
daemonize yes
- 启用后台运行(Linux 适用)。
3.2 安全
- 密码:
requirepass yourpassword
- 设置访问密码,连接时需用
AUTH yourpassword
. - 保护模式:
protected-mode yes
- 防止未经授权的远程访问。
3.3 持久化
- RDB 快照:
save 900 1
save 300 10
save 60 10000
- 表示 900 秒内 1 次变更、300 秒内 10 次变更或 60 秒内 10000 次变更时触发快照。
- 文件名:
conf dbfilename dump.rdb
- AOF(追加文件):
appendonly no
appendfsync everysec
appendonly yes
启用 AOF。appendfsync
可选值:always
:每次写入都同步(最安全,性能低)。everysec
:每秒同步(平衡性能和安全)。no
:系统决定(最快,可能丢失数据)。
3.4 内存管理
- 最大内存:
maxmemory 2gb
- 限制 Redis 使用内存(如
2gb
、500mb
)。 - 内存淘汰策略:
maxmemory-policy volatile-lru
- 常见策略:
noeviction
:不淘汰,内存满时报错。allkeys-lru
:对所有键使用 LRU(最近最少使用)淘汰。volatile-lru
:仅对设置过期时间的键使用 LRU。
3.5 日志
- 日志文件:
logfile /var/log/redis/redis.log
- 指定日志路径。
- 日志级别:
loglevel notice
- 可选值:
debug
、verbose
、notice
、warning
.
3.6 其他
- 数据目录:
dir /var/lib/redis/
- 存储 RDB 和 AOF 文件。
- 客户端连接限制:
maxclients 10000
- 最大客户端连接数。
4. 应用配置
- 保存修改:
- 编辑完成后保存文件(如
Ctrl+O
、Ctrl+X
退出nano
)。
- 重启 Redis:
sudo systemctl restart redis # Linux
brew services restart redis # MacOS
或手动启动:
redis-server /path/to/redis.conf
- 验证配置:
redis-cli CONFIG GET <parameter>
示例:
redis-cli CONFIG GET requirepass
redis-cli CONFIG GET maxmemory
5. 动态修改配置
Redis 支持运行时修改部分配置,无需重启:
redis-cli CONFIG SET <parameter> <value>
示例:
redis-cli CONFIG SET requirepass "mypassword"
redis-cli CONFIG SET maxmemory 2gb
保存动态配置到文件:
redis-cli CONFIG REWRITE
6. 常见问题
- 连接拒绝:
- 检查
bind
是否为127.0.0.1
(改为0.0.0.0
允许远程访问)。 - 确保防火墙开放端口(如
ufw allow 6379
)。 - 权限问题:
- 确保
dir
目录有写权限:bash sudo chown redis:redis /var/lib/redis sudo chmod 755 /var/lib/redis
- 性能瓶颈:
- 调整
maxmemory
和maxmemory-policy
. - 启用 AOF 时选择
everysec
平衡性能。
7. 示例配置
以下是一个简单的 redis.conf
示例,适合小型应用:
port 6379
bind 127.0.0.1
requirepass mysecurepassword
maxmemory 512mb
maxmemory-policy allkeys-lru
save 900 1
save 300 10
appendonly yes
appendfsync everysec
dir /var/lib/redis/
logfile /var/log/redis/redis.log
8. 参考资料
- 官方配置指南:Redis Configuration
- 示例配置文件:Redis GitHub redis.conf
- 中文文档:Redis 中文网 – 配置
如果需要更详细的某项配置(如持久化、集群)或遇到具体问题,请告诉我!
发表回复