Redis 是一种基于内存的 NoSQL 数据库,可以用来缓存数据、作为消息队列等。Redis 的配置文件是一个文本文件,包含了 Redis 实例的各种配置选项。下面是 Redis 配置文件的详细说明:
一、Redis 配置文件的格式
Redis 配置文件是一个文本文件,通常命名为 redis.conf。它由多行文本组成,每行都以 # 开头的部分是注释,可以用来解释某些配置选项的含义。配置选项由一个关键字和一个值组成,中间用空格隔开,例如:
port 6379
这个配置选项表示 Redis 监听的端口号是 6379。
Redis 配置选项的说明
下面是 Redis 配置文件中常见的选项及其说明:
二、Redis配置文件network相关选项
- bind <ip_address>:指定 Redis 监听的 IP 地址,可以设置为 0.0.0.0 表示监听所有 IP 地址。
- port <port>:指定 Redis 监听的端口号,默认是 6379。
- tcp-backlog <backlog>:指定 TCP 连接的 backlog(等待队列的长度),默认是 511。
- timeout <seconds>:指定客户端连接超时的时间,单位是秒,默认是 0(永不超时)。
- tcp-keepalive <seconds>:指定 TCP 连接的 keepalive 时长,单位是秒,默认是 0(不使用 keepalive)。
- security 相关选项
- requirepass <password>:指定 Redis 的密码,客户端连接时需要提供密码才能执行命令。
- rename-command <oldname> <newname>:重命名 Redis 中的某个命令,比如可以将 FLUSHALL 命令重命名为 FLUSHEVERYTHING。
- maxmemory-policy <policy>:指定 Redis 的内存管理策略,当内存使用达到 maxmemory 时,根据指定的策略执行相应的操作,例如删除过期的 key、随机删除 key 等。
三、Redis配置文件persistence相关选项
- save <seconds> <changes>:指定 Redis 在多长时间内,对数据进行了多少次修改之后,将数据自动保存到磁盘上。可以配置多个 save 选项,表示多个保存策略。
- rdbcompression yes|no:指定是否对 RDB 文件进行压缩,默认是开启的。
- rdbchecksum yes|no:指定是否对 RDB 文件进行校验,默认是开启的。
- appendonly yes|no:指定是否开启 AOF 持久化,默认是关闭的。
- appendfilename <filename>:指定 AOF 文件的文件名,默认是 appendonly.aof。
- appendfsync always|everysec|no:指定何时将 AOF 缓冲区中的内容写入磁盘,默认是 everysec(每秒写入一次)。
四、Redis配置文件performance相关选项
- maxmemory <bytes>:指定 Redis 可以使用的最大内存量,超过此限制时会执行内存管理策略。
- maxmemory-samples <count>:指定 Redis 内存管理策略采样的次数,默认是 5。
- hash-max-ziplist-entries <entries>:指定 Redis 在使用 ziplist 编码 hash 类型数据时,每个 ziplist 最多包含多少个元素。
- hash-max-ziplist-value <bytes>:指定 Redis 在使用 ziplist 编码 hash 类型数据时,每个元素的最大字节数。
- list-max-ziplist-entries <entries>:指定 Redis 在使用 ziplist 编码 list 类型数据时,每个 ziplist 最多包含多少个元素。
- list-max-ziplist-value <bytes>:指定 Redis 在使用 ziplist 编码 list 类型数据时,每个元素的最大字节数。
- set-max-intset-entries <entries>:指定 Redis 在使用 intset 编码 set 类型数据时,最多包含多少个元素。
- zset-max-ziplist-entries <entries>:指定 Redis 在使用 ziplist 编码 zset 类型数据时,每个 ziplist 最多包含多少个元素。
- zset-max-ziplist-value <bytes>:指定 Redis 在使用 ziplist 编码 zset 类型数据时,每个元素的最大字节数。
五、Redis配置文件日志相关选项
- logfile <filename>:指定 Redis 的日志文件名,默认是 stdout。
- loglevel debug|verbose|notice|warning:指定 Redis 的日志级别,默认是 notice(输出 notice、warning、error 三种级别的日志)。
六、Redis配置文件示例
下面是一个简单的 Redis 配置文件示例:
# network
bind 127.0.0.1
port 6379
# security
requirepass mypassword
# persistence
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfilename "appendonly.aof"
# performance
maxmemory 2gb
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
# logging
logfile "redis.log"
loglevel notice
这个配置文件指定了 Redis 监听本地 IP 地址 127.0.0.1 的端口号 6379,设置了密码为 mypassword,使用了三个保存策略,开启了 AOF 持久化,限制 Redis 最大内存为 2GB,使用 ziplist 编码 hash、list、zset 类型数据时有一些限制,日志级别为 notice。