redis aof rdb配置

170 阅读4分钟

在配置 Redis 时,主要涉及的是 Redis 的配置文件 redis.conf。以下是配置 Redis 的具体步骤和修改文件的内容:

1. 修改 redis.conf 文件

Redis 的配置文件通常位于安装目录或 /etc/redis 目录下。可以通过以下命令找到并编辑该文件:

sudo nano /etc/redis/redis.conf

或者,如果你是从源码编译安装的,配置文件可能位于安装目录:

sudo nano /path/to/your/redis-installation/redis.conf

在打开 redis.conf 文件后,根据之前提供的配置案例进行修改。

2. 具体配置修改内容

将以下配置内容添加或修改到 redis.conf 文件中:

# Redis 通用配置
daemonize yes                # 以守护进程方式运行
pidfile /var/run/redis_6379.pid
logfile "/var/log/redis_6379.log"
dir /var/lib/redis            # 数据文件和快照的存储目录

# RDB 配置
save 900 1                   # 900秒(15分钟)内如果至少有1个键发生变化,则生成快照
save 300 10                  # 300秒(5分钟)内如果至少有10个键发生变化,则生成快照
save 60 10000                # 60秒(1分钟)内如果至少有10000个键发生变化,则生成快照
dbfilename dump.rdb          # RDB 文件名
rdbcompression yes           # 启用RDB文件压缩
rdbchecksum yes              # 启用RDB文件校验

# AOF 配置
appendonly yes               # 启用AOF
appendfilename "appendonly.aof"  # AOF 文件名
appendfsync everysec         # 每秒钟同步一次,折中方案
no-appendfsync-on-rewrite no # 在AOF重写期间依然进行fsync
auto-aof-rewrite-percentage 100  # 当AOF文件大小增长到上次重写时的100%时触发重写
auto-aof-rewrite-min-size 64mb   # AOF文件最小64MB时触发重写

# 网络和安全配置
bind 127.0.0.1               # 只允许本地访问
protected-mode yes           # 开启保护模式,避免未授权访问
port 6379                    # Redis 监听端口

# 客户端连接配置
timeout 0                    # 客户端连接超时设置为0,表示禁用超时
tcp-keepalive 300            # 启用TCP Keepalive,设置为300秒

# 内存管理配置
maxmemory 2gb                # 设置最大内存为2GB
maxmemory-policy noeviction  # 当达到最大内存时,不驱逐任何数据

# 日志级别
loglevel notice              # 设置日志级别为notice,记录一般重要的信息

说明

  1. 通用配置:配置守护进程、日志文件、数据目录等基本信息。
  2. RDB 配置:设置快照触发条件、压缩和校验,以便在一定时间间隔生成数据快照。
  3. AOF 配置:启用 AOF,并设置文件名、同步策略以及重写条件,确保日志记录和数据安全。
  4. 网络和安全配置:仅允许本地访问,开启保护模式,指定监听端口,确保 Redis 实例的安全性。
  5. 客户端连接配置:设置客户端连接的超时和 TCP Keepalive,维护连接的稳定性。
  6. 内存管理配置:限制最大内存使用,设置内存溢出策略为不驱逐数据,以避免数据丢失。
  7. 日志级别:设置日志级别为 notice,只记录重要信息,减小日志文件大小。

通过上述配置,可以在生产环境中平衡 Redis 的数据安全性和性能。根据具体业务需求,可以进一步调整各项参数。

3. 重启 Redis 服务

修改配置文件后,需要重启 Redis 服务以使配置生效。可以使用以下命令:

对于系统服务管理(如 systemd):

sudo systemctl restart redis

或者使用 init.d 脚本:

sudo service redis-server restart

4. 验证配置

重启 Redis 服务后,可以通过以下命令检查 Redis 是否按预期启动并加载配置:

redis-cli
info

info 输出中,可以查看相关配置是否正确生效,如 aof_enabled, rdb_bgsave_in_progress, maxmemory 等。

5. 目录和权限

确保配置文件中指定的目录(如 /var/lib/redis/var/log/redis_6379.log)存在,并且 Redis 进程有权限读写这些目录和文件:

sudo mkdir -p /var/lib/redis
sudo chown redis:redis /var/lib/redis
sudo mkdir -p /var/log
sudo touch /var/log/redis_6379.log
sudo chown redis:redis /var/log/redis_6379.log

总结

通过修改 redis.conf 文件,并确保目录和权限正确,可以在生产环境中配置 Redis 以实现数据的持久化和性能优化。以上配置案例提供了一个平衡数据安全和性能的示例,根据具体业务需求可以进一步调整。