Redis单位
单位(unit)对大小写不敏感
Redis整合配置文件
可将其他配置文件中的配置整合至当前配置文件
Redis网络配置
1.设置Redis监听的接口
默认情况下,若未指定"bind"配置指令,Redis将监听来自服务器上所有可用网络接口的连接;可通过"bind"配置指令,后接一个或多个IP地址,以选择只侦听一个或多个选定接口
若运行Redis的计算机直接暴露在因特网上,绑定到所有接口是危险的,并且会将Redis实例暴露给因特网上的所有人。默认情况下,不对 bind 127.0.0.1 进行注释,这将迫使Redis只侦听IPv4环回接口地址(这意味着Redis只能接受运行在同一台计算机上的客户端的连接)
2.设置Redis的保护模式是否开启
保护模式是一层安全保护,以避免在互联网上打开的Redis实例被访问和利用
当保护模式打开时,若:
1)服务器未使用"bind"指令明确列出特定的接口集
2)未配置密码
服务器仅接受从IPv4和IPv6环回地址127.0.0.1和::1以及Unix域套接字连接的客户端的连接
默认情况下,将启用保护模式;仅当确定希望其他主机的客户端连接到Redis时,才应将其禁用,即使未使用"bind"指令明确列出特定的接口集,也未配置密码
3.设置Redis的连接端口
可指定Redis的连接端口
Redis通用配置
1.设置Redis是否作为守护进程运行(后台运行,日志不再输出至命令窗口)
默认情况下,Redis不作为守护程序运行,即daemonize no;若设置daemonize yes,Redis将在/var/run/Redis中写入一个pid文件;当Redis由upstart或systemd监控时,此参数无影响
2.设置Redis的pid文件路径
3. 设置Redis的日志等级
4.设置Redis的日志文件路径
路径为空则强制Redis登录标准输出;注意:若使用标准输出进行日志记录,却作为守护进程运行,则日志将发送至/dev/null
5.设置Redis的初始数据库数量
Redis快照配置(含RDB配置)
1.设置Redis的持久化触发条件
此处示例表示:
1)若3600秒内至少进行了1次修改,则进行持久化
2)若300秒内至少进行了100次修改,则进行持久化
3)如果60秒内至少进行了10000次修改,则进行持久化
2.设置Redis的持久化错误处理
默认为yes,即持久化发生错误时,停止持久化
3.设置是否压缩RDB文件
默认为yes,即压缩RDB文件(压缩操作会消耗CPU资源)
4.设置是否校验RDB文件
默认为yes,即保存与加载时若校验发现RDB文件损坏,则进行修复(校验和修复操作会消耗CPU资源)
从RDB版本5起,CRC64校验和被放置在文件的末尾
RDB校验使文件更耐损坏,但在保存和加载RDB文件时,性能会受到影响(约10%),因此可将其禁用以获得最佳性能
在禁用校验和的情况下创建的RDB文件的校验和为零,这将告诉加载代码跳过校验
5.设置RDB文件名
6.设置RDB文件的生成目录
默认为当前目录 ./
Redis安全配置
设置Redis的密码
设置密码:requirepass password,设置完成后重启Redis即可生效(永久性)
在客户端中,通过 auth password 进行登录验证;通过config get requirepass获取密码;通过config set requirepass设置临时密码(重启Redis即失效)
Redis客户端配置
设置Redis的最大客户端连接数
Redis内存配置
1.设置Redis的最大内存(默认单位为byte)
2.设置Redis到达最大内存后的拒绝策略(默认策略为noeviction)
noeviction:不进行删除,直接返回错误
allkeys-lru:适用于所有key:按LRU算法删除key(less recently used)
volatile-lru:仅限于设置了expire的key:按LRU算法删除key(less recently used)
allkeys-random:适用于所有key:随机删除key
volatile-random:仅限于设置了expire的key:随机删除key
volatile-ttl:仅限于设置了expire的key:删除TTL(time to live)短的key
RedisAOF配置
1.设置是否开启AOF(默认不开启AOF,因为绝大多数情况下RDB完全够用)
2.设置AOF持久化的文件名
3.设置AOF同步方案(默认为everysec方案)
always:每次写命令
everysec:每秒
no:不同步,等待操作系统的自动同步(Linux系统默认间隔30S进行一次同步)
always方案性能最低,但最安全;no方案性能最高,但最不安全;everysec介于二者之间,所以作为默认方案
4.设置在进行AOF重写时,是否取消同步aof文件(默认为no,即不取消同步aof文件)
主进程同步aof文件与子进程执行bgrewriteaof均涉及I/O,而且bgrewriteaof往往涉及大量I/O,所以有时会导致二者发生I/O阻塞
此时可通过设置no-appendfsync-on-rewrite参数解决上述问题:
1.若将参数设置为no,则视为可容忍阻塞,此举可维护数据的完整性
2.若将参数设置为yes,则等同于将appendfsycn参数设置为no,等待操作系统的自动同步;这意味着在Linux系统的默认设置下,若Redis发生宕机,可能会损失长达30S的数据
5.设置触发AOF重写的条件(默认为增加100%与64mb)
auto-aof-rewrite-percentage:设置触发AOF重写的aof文件增加量。Redis会记录最近一次重写后的aof文件大小(若Redis启动后未发生重写,则记录启动时的aof文件大小),并将此大小作为基本大小;将基本大小与当前aof文件大小进行比较,若当前aof文件大小相较于基本大小增加了指定的百分比,则进行AOF重写
auto-aof-rewrite-min-size:触发AOF重写的最小文件大小。设置该参数是为了避免过于频繁地进行AOF重写,毕竟AOF重写的目的是为了缩减aof文件的大小,若aof文件本身不大,则无需进行重写
也就是说,必须满足上述两个条件,才会进行AOF重写