Redis单位

单位(unit)对大小写不敏感 

查看本地的redis目录_java

Redis整合配置文件

可将其他配置文件中的配置整合至当前配置文件 

查看本地的redis目录_查看本地的redis目录_02

Redis网络配置

1.设置Redis监听的接口

查看本地的redis目录_查看本地的redis目录_03

默认情况下,若未指定"bind"配置指令,Redis将监听来自服务器上所有可用网络接口的连接;可通过"bind"配置指令,后接一个或多个IP地址,以选择只侦听一个或多个选定接口

若运行Redis的计算机直接暴露在因特网上,绑定到所有接口是危险的,并且会将Redis实例暴露给因特网上的所有人。默认情况下,不对 bind 127.0.0.1 进行注释,这将迫使Redis只侦听IPv4环回接口地址(这意味着Redis只能接受运行在同一台计算机上的客户端的连接)

2.设置Redis的保护模式是否开启

查看本地的redis目录_redis_04

保护模式是一层安全保护,以避免在互联网上打开的Redis实例被访问和利用

当保护模式打开时,若:

        1)服务器未使用"bind"指令明确列出特定的接口集

        2)未配置密码

服务器仅接受从IPv4和IPv6环回地址127.0.0.1和::1以及Unix域套接字连接的客户端的连接

默认情况下,将启用保护模式;仅当确定希望其他主机的客户端连接到Redis时,才应将其禁用,即使未使用"bind"指令明确列出特定的接口集,也未配置密码

3.设置Redis的连接端口

查看本地的redis目录_Redis_05

可指定Redis的连接端口

Redis通用配置

1.设置Redis是否作为守护进程运行(后台运行,日志不再输出至命令窗口)

查看本地的redis目录_Redis_06

默认情况下,Redis不作为守护程序运行,即daemonize no;若设置daemonize yes,Redis将在/var/run/Redis中写入一个pid文件;当Redis由upstart或systemd监控时,此参数无影响

2.设置Redis的pid文件路径

查看本地的redis目录_Redis_07

3. 设置Redis的日志等级

查看本地的redis目录_持久化_08

4.设置Redis的日志文件路径

查看本地的redis目录_java_09

路径为空则强制Redis登录标准输出;注意:若使用标准输出进行日志记录,却作为守护进程运行,则日志将发送至/dev/null

5.设置Redis的初始数据库数量

查看本地的redis目录_Redis_10

Redis快照配置(含RDB配置)

1.设置Redis的持久化触发条件

查看本地的redis目录_查看本地的redis目录_11

此处示例表示:

        1)若3600秒内至少进行了1次修改,则进行持久化

        2)若300秒内至少进行了100次修改,则进行持久化

        3)如果60秒内至少进行了10000次修改,则进行持久化

2.设置Redis的持久化错误处理

查看本地的redis目录_持久化_12

默认为yes,即持久化发生错误时,停止持久化

3.设置是否压缩RDB文件

查看本地的redis目录_redis_13

默认为yes,即压缩RDB文件(压缩操作会消耗CPU资源)

4.设置是否校验RDB文件

查看本地的redis目录_Redis_14

默认为yes,即保存与加载时若校验发现RDB文件损坏,则进行修复(校验和修复操作会消耗CPU资源)

从RDB版本5起,CRC64校验和被放置在文件的末尾

RDB校验使文件更耐损坏,但在保存和加载RDB文件时,性能会受到影响(约10%),因此可将其禁用以获得最佳性能

在禁用校验和的情况下创建的RDB文件的校验和为零,这将告诉加载代码跳过校验

5.设置RDB文件名

查看本地的redis目录_持久化_15

6.设置RDB文件的生成目录

查看本地的redis目录_查看本地的redis目录_16

默认为当前目录 ./

Redis安全配置 

设置Redis的密码

查看本地的redis目录_持久化_17

设置密码:requirepass password,设置完成后重启Redis即可生效(永久性)

在客户端中,通过 auth password 进行登录验证;通过config get requirepass获取密码;通过config set requirepass设置临时密码(重启Redis即失效)

Redis客户端配置 

设置Redis的最大客户端连接数

查看本地的redis目录_持久化_18

Redis内存配置

1.设置Redis的最大内存(默认单位为byte)

查看本地的redis目录_redis_19

2.设置Redis到达最大内存后的拒绝策略(默认策略为noeviction)

查看本地的redis目录_java_20

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完全够用) 

查看本地的redis目录_查看本地的redis目录_21

2.设置AOF持久化的文件名

查看本地的redis目录_持久化_22

3.设置AOF同步方案(默认为everysec方案)

查看本地的redis目录_Redis_23

always:每次写命令

everysec:每秒

no:不同步,等待操作系统的自动同步(Linux系统默认间隔30S进行一次同步)

always方案性能最低,但最安全;no方案性能最高,但最不安全;everysec介于二者之间,所以作为默认方案

4.设置在进行AOF重写时,是否取消同步aof文件(默认为no,即不取消同步aof文件)

查看本地的redis目录_java_24

主进程同步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)

查看本地的redis目录_查看本地的redis目录_25

auto-aof-rewrite-percentage:设置触发AOF重写的aof文件增加量。Redis会记录最近一次重写后的aof文件大小(若Redis启动后未发生重写,则记录启动时的aof文件大小),并将此大小作为基本大小;将基本大小与当前aof文件大小进行比较,若当前aof文件大小相较于基本大小增加了指定的百分比,则进行AOF重写

auto-aof-rewrite-min-size:触发AOF重写的最小文件大小。设置该参数是为了避免过于频繁地进行AOF重写,毕竟AOF重写的目的是为了缩减aof文件的大小,若aof文件本身不大,则无需进行重写

也就是说,必须满足上述两个条件,才会进行AOF重写