redis.conf配置文件介绍

145 阅读5分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第22天,点击查看活动详情

redis.conf配置文件介绍

这里主要讲了redis.conf中的一些配置,比较重要的有redis后台运行、远程连接、redis服务启动与连接、密码获取、slaveof主从配置、主从机查询等。

说在前面等一个配置: daemonize

该属性设置yes会开启守护线程,同时redis在后台运行。

基本配置

配置文件redis.conf位置

redis配置文件redis.conf位于redis安装目录下。cd进入redis安装目录直接ls即可看到:

cd /tmp/redis-6.2.4
ls
-> redis.conf

基本度量单位

只支持bytes即字节,不支持bit。

对大小写不敏感。

image.png

INCLUDES 包含

这里主要指我们定义新的配置文件到其他位置,当然也要是.conf文件,然后在主配置文件中includes一下即可导入配置。

image.png

network网络配置,包括远程连接如何设置

bind 127.0.0.1
protected-mode yes
port 6379

配置文件默认配置是上述配置,无法开启远程连接。若要使所有主机都可连接(远程连接),需要将bind的ip号改成0.0.0.0,保护模式关闭。

通用配置

daemonize yes # 默认情况下,Redis不作为守护进程运行。需要开启的话,改为 yes
supervised no # 可通过upstart和systemd管理Redis守护进程
pidfile /var/run/redis_6379.pid # 以后台进程方式运行redis,则需要指定pid 文件
loglevel notice # 日志级别。可选项有:
# debug(记录大量日志信息,适用于开发、测试阶段);
# verbose(较多日志信息);
# notice(适量日志信息,使用于生产环境);
# warning(仅有部分重要、关键信息才会被记录)。
logfile "" # 日志文件的位置,当指定为空字符串时,为标准输出
databases 16 # 设置数据库的数目。默认的数据库是DB 0
always-show-logo yes # 是否总是显示logo

当我们要做redis集群的时候,要设置logfile的,单机的话无所谓。日志输出文件示例:6380.log。

快照:RDB持久化相关

当触发save条件,如900秒内1个key发生改变,那就会保存rdb文件到硬盘。

# 900秒(15分钟)内至少1个key值改变(则进行数据库保存--持久化)
save 900 1
# 300秒(5分钟)内至少10个key值改变(则进行数据库保存--持久化)
save 300 10
# 60秒(1分钟)内至少10000个key值改变(则进行数据库保存--持久化)
save 60 10000
stop-writes-on-bgsave-error yes # 持久化出现错误后,是否依然进行继续进行工作
rdbcompression yes # 使用压缩rdb文件 yes:压缩,但是需要一些cpu的消耗。no:不压
缩,需要更多的磁盘空间
rdbchecksum yes # 是否校验rdb文件,更有利于文件的容错性,但是在保存rdb文件的时
候,会有大概10%的性能损耗
dbfilename dump.rdb # dbfilenamerdb文件名称
dir ./ # dir 数据目录,数据库的写入会在这个目录。rdb、aof文件也会写在这个目录

replication: info replication可以查看当前redis是主机还是重机等一系列信息。

SECURITY安全相关

# 启动redis服务
redis-server redis.conf ###redis [配置文件]
# 连接客户端
redis-cli -p 6379 #不加-p默认是连接6379
# 获得和设置密码
config get requirepass
config set requirepass "123456"
#测试ping,发现需要验证
127.0.0.1:6379> ping
NOAUTH Authentication required.
# 验证
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> ping
pong

限制

maxclients 10000 # 设置能连上redis的最大客户端连接数量
maxmemory <bytes> # redis配置的最大内存容量
maxmemory-policy noeviction # maxmemory-policy 内存达到上限的处理策略
#volatile-lru:利用LRU算法移除设置过过期时间的key。
#volatile-random:随机移除设置过过期时间的key。
#volatile-ttl:移除即将过期的key,根据最近过期时间来删除(辅以TTL)
#allkeys-lru:利用LRU算法移除任何key。
#allkeys-random:随机移除任何key。
#noeviction:不移除任何key,只是返回一个写错误。

append only模式,这个是aof持久化方案用到的

appendonly no # 是否以append only模式作为持久化方式,默认使用的是rdb方式持久化,这种方式在许多应用中已经足够用了
appendfilename "appendonly.aof" # appendfilename AOF 文件名称
appendfsync everysec # appendfsync aof持久化策略的配置
# no表示不执行fsync,由操作系统保证数据同步到磁盘,速度最快。
# always表示每次写入都执行fsync,以保证数据同步到磁盘。
# everysec表示每秒执行一次fsync,可能会导致丢失这1s数据。

aof文件发生损坏可用checkaof相关命令来修复。具体后面再说。

常见配置

timeout 300

表示客户端限制300s关闭连接。如果是timeout 0则表示关闭该功能。

loglevel verbose

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

rdbdbfilename dump.rdb

指定本地数据库文件名,默认值为dump.

dir ./

指定本地数据库存放目录

slaveof 主机host 主机端口号

用于主从复制,从机跟的主机是哪个。

appendfilename appendonly.aof

指定更新日志文件名,默认为appendonly.aof

这里配置就先说这么多吧,redis.conf还有很多配置。