Redis 配置文件 redis.conf 解析

Redis 的配置文件一般在 /opt/redis-6.x.x/redis.conf 中。

Redis 配置文件结构

redis.conf 被分成了多个部分,每部分都用 ### 分割开。

Units 单位

配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit。

# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes

INCLUDES 包含

可以引入其他配置文件,这样方便把公共配置放到一起。

# include /path/to/local.conf
# include /path/to/other.conf

NETWORK 网络

默认情况bind 为 127.0.0.1,此时只能接受本机的访问请求。

不写的情况下,无限制接受任何ip地址的访问。

如果开启了protected-mode,那么在没有设定bind ip且没有设密码的情况下,Redis只允许接受本机的响应。

# bind 192.168.1.100 10.0.0.1     # listens on two specific IPv4 addresses
# bind 127.0.0.1 ::1              # listens on loopback IPv4 and IPv6
# bind * -::*                     # like the default, all available interfaces

默认绑定的IP为 本机
bind 127.0.0.1 -::1

默认开启保护模式
protected-mode yes

默认绑定的端口号为 6379
port 6379

一个空闲的客户端维持多少秒会关闭,0表示关闭该功能,即永不关闭。
timeout 0

对访问客户端的一种心跳检测,每个n秒检测一次。如果设置为0,则不会进行Keepalive检测。
tcp-keepalive 300

GENERAL 通用

通用的一些配置项。

是否为后台守护进程,默认为 no,这样在关闭启动命令窗口后,Redis 就停止了,一般建议改为 yes。
daemonize no

指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为notice
loglevel notice

日志文件名称
logfile ""

设定库的数量 默认16,默认数据库为0,可以使用SELECT <dbid>命令,连接上指定id数据库。
databases 16

SECURITY 安全

主要是配置 redis 的密码。

设置 redis 的密码
# requirepass foobared

在命令中设置密码,只是临时的。重启redis服务器,密码就还原了。

127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass 333
OK

设置完成后,在另一个控制台:

127.0.0.1:6379> ping
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 333
OK
127.0.0.1:6379> ping
PONG

MEMORY MANAGEMENT 内存管理

建议设置最大占用内存 maxmemory,否则,将内存占满,造成服务器宕机。

设置redis可以使用的内存量。一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。

# maxmemory <bytes>

内存过期策略:

# volatile-lru -> Evict using approximated LRU, only keys with an expire set.
# allkeys-lru -> Evict any key using approximated LRU.
# volatile-lfu -> Evict using approximated LFU, only keys with an expire set.
# allkeys-lfu -> Evict any key using approximated LFU.
# volatile-random -> Remove a random key having an expire set.
# allkeys-random -> Remove a random key, any key.
# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
# noeviction -> Don't evict anything, just return an error on write operations.
  • volatile-lru:使用LRU算法移除key,只对设置了过期时间的键;(最近最少使用)
  • allkeys-lru:在所有集合key中,使用LRU算法移除key
  • volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
  • allkeys-random:在所有集合key中,移除随机的key
  • volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key
  • noeviction:不进行移除。针对写操作,只是返回错误信息

SNAPSHOTTING 持久化

持久化在配置在专门章节。

转载请注明出处:码谱记录 » Redis 配置文件 redis.conf 解析
标签: