开启掘金成长之旅!这是我参与「掘金日新计划 · 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。
对大小写不敏感。
INCLUDES 包含
这里主要指我们定义新的配置文件到其他位置,当然也要是.conf文件,然后在主配置文件中includes一下即可导入配置。
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还有很多配置。