启动redis时,就是通过配置文件来启动的。
RDB (Redis DateBase)配置
单位配置
关于单位的说明:
(1)当需要内存大小时,可以指定它通常采用1k 5GB 4M等形式
(2)单位对大小写不敏感。
(3)只支持字节。
包含:
可以创建多个配置文件,最后使用 include 相对路径或绝对路径 来整合到一起。
网络 network
非常重要,可以设置:
连接的ip地址、端口 等。
网络配置:
bind 127.0.0.1 # ip地址,如果注释掉,说明所有远程都可以访问redis,前提下边 protected-mode 改为no
protected-mode yes # 保护模式 - 只能本机访问,远程不能访问
port 6379 # 端口设置
# 超时时间(单位秒) - redis长时间未使用,如果设置超时时间,过了这个时间就不能在操作, 必须要重新连接才行,默认0,永不超时。
timeout 0
# 检测心跳的,每300秒redis会检测下,当前连接是否有效,也就是当前是否在使用redis,如果没有在使用,它会关闭连接。
tcp-keepalive 300
通用GENERAL配置:
daemonize yes # 默认情况下,Redis不作为守护进程运行(一退出进程就结束了)。如果需要,请使用“是”。
pidfile /var/run/redis_6379.pid # 如果以后台方式运行,就需要指定一个进程文件
loglevel notice # 日志级别,默认级别 生产环境
# 四个级别:
# debug 在开发中用debug会看到更详细的信息。
# verbose 类似java中的info
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
logfile "" # 日志生产出来的文件路径
databases 16 # 数据库的数量,默认16个数据库
alwys-show-logo yes # 是否显示logo ,开启redis时的那个大logo
快照 SNAPSHOTTING配置:
持久化时用到,在规定的时间内,执行了多少次,则会持久化到文件 .rbd文件 和 .aof文件。
下边时持久化规则:
因为redis时内存数据库,没有持久化断电即失去数据。
# 如果900秒内,如果至少有1个keyi进行了修改,我们进行持久化操作。
save 900
# 如果300秒内,如果至少有10个keyi进行了修改,我们即进行持久化操作。
save 300 10
# 如果60秒内,如果至少有1万个keyi进行了修改,我们进行持久化操作(高并发的场景)。
save 60 10000
# 持久化如果出现错误,是否还需要工作
stop-writes-on-bgsave-error yes
# 是否压缩rdb文件(就是持久化的文件),需要消耗cpu资源
rdbcompression yes
# 报错rdb文件的时候,是否进行错误检查校验
rdbchecksum yes
# rdb持久化保存的目录
dir ./
REPLICATION 主从复制
SECURITY 安全
(1)在配置文件中设置密码:
# 在配置文件中设置密码
requirepass xxxx
(2)在命令行中设置密码:
config set requirepass
验证密码:
只有验证了密码,才能继续操作redis
auth password
客户端 LIMITS 限制配置
# 限制能连上redis的客户端的最大连接数量
maxclients 10000
# 配置最大的内存容量
maxmemory <bytes>
# 与上边 maxmemory <bytes> 配合使用的,内存达到上限之后的处理策略(可以移除一些过期的key)
maxmemory-policy noeviction
# 下边时6中策略
# 1、volatile-lru:只对设置了过期时间的key进行LRU(默认值)
# 2、allkeys-lru:删除LRU算法的key
# 3、volatile-random:随机删除即将过期的key
# 4、allkeys-random:随机删除
# 5、volatile-ttl:删除即将过期的
# 6、noeviction:永不过期,返回错误
APPEND ONLY MODE 模式 aof配置
# 默认时不开启aof模式,默认使用rdb方式持久化的,在所有情况下,rdb完全够用!
appendonly no
# 持久化的文件的名字
appendfilename "appendonly.aof"
#
# appendfsync always # 每次修改都会同步,但是性能低,速度慢
appendfsync everysec # 每秒执行一次,可能会丢失一秒的数据
# appendfsync no # 不执行,操作系统自己同步数据,速度最快