本文共 3063 字,大约阅读时间需要 10 分钟。
Redis 配置文件(redis.conf)是 Redis服务器运行所需的核心配置文件,包含了从数据库连接、持久化设置、主从复制、安全性等多个方面的重要参数。以下是对 Redis 配置文件的详细中文解释:
默认情况下,Redis 不会作为守护进程运行。如果需要运行为守护进程,可设置 daemonize yes。此时 Redis 会将进程 ID 写入指定的文件(如 /var/run/redis.pid)。
daemonize yespidfile /var/run/redis.pid
Redis 默认监听 TCP 端口 6379。如果需要修改监听端口,可设置 port。如果设置为 0,Redis 将不会监听 TCP 套接字。
port 6379tcp-backlog 511
Redis 可以绑定到一或多个 IP 地址,用于监听特定网络接口。例如:
bind 192.168.1.100bind 10.0.0.1
默认情况下,Redis 会监听所有可用的网络接口。
指定用于监听 Unix 套接字的文件路径。没有指定时,Redis 不会监听 Unix 套接字。
unixsocket /tmp/redis.sock
设置客户端连接的超时时间(单位:秒)。在高并发场景下,可增加 tcp-backlog 和相应的 Linux 系统参数(如 /proc/sys/net/core/somaxconn)。
tcp-backlog 511
Redis 提供了两种持久化模式:RDB 和 AOF。
RDB 是一种基于内存快照的持久化方式。默认情况下,Redis 会在指定时间或数据变更次数后生成快照文件(如 dump.rdb)。以下是常见参数:
save 900 1 # 900 秒(15 分钟)后保存一次快照save 300 10 # 300 秒(5 分钟)后保存一次快照save 60 10000 # 60 秒后保存一次快照
save 指令注释掉,Redis 不会持久化数据。rdbcompression 设置是否压缩快照数据,默认为 yes。rdbcompression yes
AOF 是基于日志的持久化方式,支持高频率的写操作持久化。以下是常见参数:
appendonly yesappendfilename appendonly.aofappendfsync always # 每次写入数据时就同步到磁盘
appendonly no 会禁用 AOF 持久化,数据可能丢失。appendfsync always 会在每次写入时就刷盘,性能较低,但安全性最高。Redis 可配置自动重写 AOF 文件,以减少文件大小。以下是参数:
auto-aof-rewrite-percentage 100 # 自动重写百分比(默认 100%)auto-aof-rewrite-min-size 64mb # 最小文件大小(默认 64MB)
Redis 主从复制用于数据备份和高可用性。以下是常见参数:
设置从服务器(slave)的 master IP 和端口。如:
slaveof 192.168.1.100 6379
如果 master 有密码保护,可在从服务器上设置身份验证:
masterauth your-master-password
slave-serve-stale-data yes:从服务器在丢失数据时继续响应请求,默认为 yes。repl-ping-slave-period 10:从服务器向 master 发送 ping 请求的时间间隔(默认 10 秒)。slave-serve-stale-data yesrepl-ping-slave-period 10
设置主从复制的超时时间(单位:秒)。
repl-timeout 60
启用客户端身份验证,可设置密码:
requirepass your-password
通过重命名命令隐藏危险命令。例如:
rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
默认情况下,从服务器为只读,支持管理命令(如 CONFIG)。可通过 slave-read-only yes 配置。
slave-read-only yes
设置最大客户端连接数,默认为 10000。超过限制时,Redis 会关闭新连接。
maxclients 10000
设置 Redis 内存使用的最大值。默认为系统内存的剩余部分。以下是内存管理策略:
maxmemory 64mb # 最大内存大小maxmemory-policy volatile-lru # 使用 LRU 算法清理数据
设置 Lua 脚本的最大执行时间(单位:毫秒)。
lua-time-limit 5000
记录超过指定时间的慢查询。默认为 10000 微秒。
slowlog-log-slower-than 10000
Redis 支持 Pub/Sub 客户端订阅键空间事件。以下是常见参数:
notify-keyspace-events Elg # 启用 List 和通用事件通知
以下是内存使用相关参数:
hash-max-ziplist-entries 512 # 列表内存使用优化zset-max-ziplist-entries 128 # 有序集合内存使用优化
默认情况下,Redis 会定期刷新哈希表以释放内存。可设置为 yes 以加速内存释放。
activerehashing yes
设置客户端输出缓冲区的限制。以下是常见参数:
client-output-buffer-limit normal 0 0 0 # 正常客户端client-output-buffer-limit slave 256mb 64mb 60 # 从服务器client-output-buffer-limit pubsub 32mb 8mb 60 # Pub/Sub 客户端
设置过期事件的通知方式。以下是常见参数:
expire-timeout 300 # key 过期时间(默认 300 秒)notify-keyspace-events Ex # 启用过期事件通知
以下是数据同步相关参数:
repl-backlog-size 1mb # 数据同步缓冲区大小repl-backlog-ttl 3600 # 缓冲区超时时间(默认 3600 秒)
通过合理配置 Redis 配置文件,可以根据实际需求优化 Redis 的性能和安全性。
转载地址:http://lqvfk.baihongyu.com/