博客
关于我
Reids配置文件redis.conf中文详解
阅读量:796 次
发布时间:2023-02-27

本文共 3063 字,大约阅读时间需要 10 分钟。

Redis 配置文件(redis.conf)是 Redis服务器运行所需的核心配置文件,包含了从数据库连接、持久化设置、主从复制、安全性等多个方面的重要参数。以下是对 Redis 配置文件的详细中文解释:


一、Redis 运行环境设置

1. 启动模式

默认情况下,Redis 不会作为守护进程运行。如果需要运行为守护进程,可设置 daemonize yes。此时 Redis 会将进程 ID 写入指定的文件(如 /var/run/redis.pid)。

daemonize yes
pidfile /var/run/redis.pid

2. 监听端口

Redis 默认监听 TCP 端口 6379。如果需要修改监听端口,可设置 port。如果设置为 0,Redis 将不会监听 TCP 套接字。

port 6379
tcp-backlog 511

3. 网络接口绑定

Redis 可以绑定到一或多个 IP 地址,用于监听特定网络接口。例如:

bind 192.168.1.100
bind 10.0.0.1

默认情况下,Redis 会监听所有可用的网络接口。

4. Unix 套接字路径

指定用于监听 Unix 套接字的文件路径。没有指定时,Redis 不会监听 Unix 套接字。

unixsocket /tmp/redis.sock

5. 客户端连接超时

设置客户端连接的超时时间(单位:秒)。在高并发场景下,可增加 tcp-backlog 和相应的 Linux 系统参数(如 /proc/sys/net/core/somaxconn)。

tcp-backlog 511

二、持久化设置

Redis 提供了两种持久化模式:RDB 和 AOF。

1. RDB 快照

RDB 是一种基于内存快照的持久化方式。默认情况下,Redis 会在指定时间或数据变更次数后生成快照文件(如 dump.rdb)。以下是常见参数:

save 900 1  # 900 秒(15 分钟)后保存一次快照
save 300 10 # 300 秒(5 分钟)后保存一次快照
save 60 10000 # 60 秒后保存一次快照
  • 如果所有 save 指令注释掉,Redis 不会持久化数据。
  • 可通过 rdbcompression 设置是否压缩快照数据,默认为 yes
rdbcompression yes

2. AOF 持久化

AOF 是基于日志的持久化方式,支持高频率的写操作持久化。以下是常见参数:

appendonly yes
appendfilename appendonly.aof
appendfsync always # 每次写入数据时就同步到磁盘
  • appendonly no 会禁用 AOF 持久化,数据可能丢失。
  • appendfsync always 会在每次写入时就刷盘,性能较低,但安全性最高。

3. AOF 自动重写

Redis 可配置自动重写 AOF 文件,以减少文件大小。以下是参数:

auto-aof-rewrite-percentage 100  # 自动重写百分比(默认 100%)
auto-aof-rewrite-min-size 64mb # 最小文件大小(默认 64MB)

三、主从复制设置

Redis 主从复制用于数据备份和高可用性。以下是常见参数:

1. 主从关系

设置从服务器(slave)的 master IP 和端口。如:

slaveof 192.168.1.100 6379

2. 身份验证

如果 master 有密码保护,可在从服务器上设置身份验证:

masterauth your-master-password

3. 从服务器行为

  • slave-serve-stale-data yes:从服务器在丢失数据时继续响应请求,默认为 yes
  • repl-ping-slave-period 10:从服务器向 master 发送 ping 请求的时间间隔(默认 10 秒)。
slave-serve-stale-data yes
repl-ping-slave-period 10

4. 复制超时

设置主从复制的超时时间(单位:秒)。

repl-timeout 60

四、安全性设置

1. 客户端身份验证

启用客户端身份验证,可设置密码:

requirepass your-password

2. 命令重命名

通过重命名命令隐藏危险命令。例如:

rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52

3. 只读从服务器

默认情况下,从服务器为只读,支持管理命令(如 CONFIG)。可通过 slave-read-only yes 配置。

slave-read-only yes

五、资源限制

1. 客户端连接限制

设置最大客户端连接数,默认为 10000。超过限制时,Redis 会关闭新连接。

maxclients 10000

2. 内存限制

设置 Redis 内存使用的最大值。默认为系统内存的剩余部分。以下是内存管理策略:

maxmemory 64mb  # 最大内存大小
maxmemory-policy volatile-lru # 使用 LRU 算法清理数据

六、高级功能

1. Lua 脚本执行时间

设置 Lua 脚本的最大执行时间(单位:毫秒)。

lua-time-limit 5000

2. 慢查询日志

记录超过指定时间的慢查询。默认为 10000 微秒。

slowlog-log-slower-than 10000

3. 事件通知

Redis 支持 Pub/Sub 客户端订阅键空间事件。以下是常见参数:

notify-keyspace-events Elg  # 启用 List 和通用事件通知

七、优化设置

1. 内存使用优化

以下是内存使用相关参数:

hash-max-ziplist-entries 512  # 列表内存使用优化
zset-max-ziplist-entries 128 # 有序集合内存使用优化

2. 异步哈希刷新

默认情况下,Redis 会定期刷新哈希表以释放内存。可设置为 yes 以加速内存释放。

activerehashing yes

3. 客户端输出缓冲区

设置客户端输出缓冲区的限制。以下是常见参数:

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 客户端

八、其他高级设置

1. 过期事件

设置过期事件的通知方式。以下是常见参数:

expire-timeout 300  # key 过期时间(默认 300 秒)
notify-keyspace-events Ex # 启用过期事件通知

2. 数据同步

以下是数据同步相关参数:

repl-backlog-size 1mb  # 数据同步缓冲区大小
repl-backlog-ttl 3600 # 缓冲区超时时间(默认 3600 秒)

通过合理配置 Redis 配置文件,可以根据实际需求优化 Redis 的性能和安全性。

转载地址:http://lqvfk.baihongyu.com/

你可能感兴趣的文章
PanTools多网盘登录神器
查看>>
Papyrus项目常见问题解决方案
查看>>
Parallel.ForEach使用示例
查看>>
Parallel.ForEach的基础使用
查看>>
parallels desktop for mac安装虚拟机 之parallelsdesktop密钥 以及 parallels desktop安装win10的办公推荐可以提高办公效率...
查看>>
parallelStream导致LinkedList遍历时空指针的问题
查看>>
Parameter ‘password‘ not found. Available parameters are [md5String, param1, username, param2]
查看>>
ParameterizedThreadStart task
查看>>
Paramiko exec_命令的实时输出
查看>>
Spring security之管理session
查看>>
paramiko模块
查看>>
param[:]=param-lr*param.grad/batch_size的理解
查看>>
spring mvc excludePathPatterns失效 如何解决spring拦截器失效 excludePathPatterns忽略失效 拦截器失效 spring免验证拦截器不起作用
查看>>
Spring Cloud 之注册中心 EurekaServerAutoConfiguration源码分析
查看>>
Parrot OS 6.2 重磅发布!推出全新 Docker 容器启动器
查看>>
Parrot OS 6.3 发布!全面提升安全性,新增先进工具,带来更高性能
查看>>
ParseChat应用源码ios版
查看>>
Part 2异常和错误
查看>>
Pascal Script
查看>>
Spring Boot集成Redis实现keyspace监听 | Spring Cloud 34
查看>>