启动的时候,就是通过配置文件来启动的!
单位
1、配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit
2、对大小写 不敏感
INCLUDES 包含
和Spring配置文件类似,可以通过includes包含,redis.conf 可以作为总文件,可以包含其他文件!
NETWORK 网络配置
bind 127.0.0.1 # 绑定的ip protected-mode yes # 保护模式 port 6379 # 默认端口
GENERAL 通用
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
SNAPSHOPTING 快照
后面做持久化的时候会用到!
在规定的时间内,有多少个key值变化,才会持久化到文件 .rdb文件或者.aof文件!
redis是内存数据库,如果没有持久化,那么数据断电即失,所以需要持久化的机制!
# 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文件检查校验,更有利于文件的容错性,但是在保存rdb文件的时候,会有大概10%的性能损耗 dbfilename dump.rdb # dbfilenamerdb文件名称 dir ./ # dir 数据目录,数据库的写入会在这个目录。rdb、aof文件也会写在这个目录
REPLICATION 复制 我们后面讲主从复制再给大家讲解!这里先跳过!
SECURITY安全
可以在这里设置redis的密码,默认是没有密码的!
我们可以使用命令的方式设置密码:
# 启动redis # 连接客户端 127.0.0.1:6379> ping PONG 127.0.0.1:6379> config get requirepass # 获取redis的密码,发现为空! 1) "requirepass" 2) "" 127.0.0.1:6379> config set requirepass "123456" # 设置redis的密码 OK 127.0.0.1:6379> config get requirepass # 发现所有的命令都没有权限了 (error) NOAUTH Authentication required. 127.0.0.1:6379> ping (error) NOAUTH Authentication required. 127.0.0.1:6379> auth 123456 # 使用密码登录即可 OK 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "123456"
也可以直接在配置文件里面设置密码:
CLIENTS 客户端限制
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" # AOF 持久化文件名称 appendfsync everysec # appendfsync aof持久化策略的配置 # no表示不执行fsync,由操作系统保证数据同步到磁盘,速度最快。 # always表示每次写入都执行fsync,以保证数据同步到磁盘。 # everysec表示每秒执行一次fsync,可能会导致丢失这1秒的数据。