1、redis.conf 通用类
Redis的配置文件是一个文本文件,通常名为
redis.conf
。以下是一些常见配置项的解释和示例:
1、bind 127.0.0.1:绑定的主机地址
2、 protected-mode ,默认是开启状态,一般不需要修改,可以保证服务的安全性。
3、daemonize no
:默认是no,为前台运行。终止会话,则服务停止运行,所以我们需要改为yes,让redis可以在后台运行
4、port 6379 指定Redis监听端口,默认端口为6379
5、protected-mode ,默认是开启状态,一般不需要修改,可以保证服务的安全性。
6、logfile,默认为空,则将日志打印在屏幕上,不输出成文件。也可以指定文件位置,这样服务运行时只会把日志输入到指定文件里。
7、databases ,默认是16个数据库,从第0个开始数起。
设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>进行数据库的切换选择,现在切换1库了,各库之间是独立的
8、always-show-logo 开启,日志有LOGO输出。
2、redis持久化规则
1、RDB
save 900 1
save 300 10
save 60 10000
save 900 1:表示900秒(15分钟)内,至少有1个key值发生改变(写操作,包括新增、修改和删除操作),则会触发bgsave,将内存中的数据以快照的方式写入到二进制文件中,保存在磁盘。
save 300 10:表示300秒(5分钟)内,至少有10个key值发生改变(写操作,包括新增、修改和删除操作),则会触发bgsave,将内存中的数据以快照的方式写入到二进制文件中,保存在磁盘。
save 60 10000:表示60秒(1分钟)内,至少有10000个key值发生改变(写操作,包括新增、修改和删除操作),则会触发bgsave,将内存中的数据以快照的方式写入到二进制文件中,保存在
2、stop-writes-on-bgsave-error:持久化错误时是否继续工作,默认为yes,开启状态
3、rdb文件压缩
rdbcompression,默认为yes,开启文件压缩redis会采用 LZF(压缩算法) 压缩,会消耗一定的CPU资源。若不开启,则会占用更多的磁盘空间。需要注意的是,压缩的并不是针对文件,而是对文件里的数据(数据库中的字符串)进行的,且只有在字符串达到一定长度(20字节)时才会进行。
4、rdb文件校验
rdbchecksum,默认yes开启状态,会校验rdb文件是否有损坏,会有大概10%的性能损耗。
5、dbfilename,可以指定命名rdb文件的名称,默认为dump.rdb。
3、安全类配置
3.1、设置密码
requirepass,默认为空没有密码。设置密码可以一定程度地保证生成环境的安全性。
用命令设置密码不会更改配置文件里的配置,但重启服务会失效。
4、限制类
1、设置最大客户端连接数量
maxclients,默认关闭状态,可以设置客户端的最大连接数,超过这个数值的第n+1个用户开始就连接不了服务端。
2、设置最大内存
maxmemory,默认没有设置,项目上一定要设置最大限制内存,不然会存在数据丢失情况。
3、内存达上限处理策略
maxmemory policy,当使用内存超过上限的处理方式。
volatile-lru:利用 LRU 算法移除设置过过期时间的 key。
volatile-lfu :使用近似的LFU移除有过期设置的键。
volatile-random:随机移除设置过过期时间的 key。
allkeys-lfu:使用近似的LFU移除任何key。
volatile-ttl:移除即将过期的 key,根据最近过期时间来删除(辅以 TTL)
allkeys-lru:利用 LRU 算法移除任何 key。
allkeys-random:随机移除任何 key。
noeviction:不移除任何 key,只是返回一个写错误。
4、vm-enabled no
指定是否启用虚拟内存机制,默认值为no,简单的介绍一下,VM机制将数据分页存放,由Redis将访问量较少的页即冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中
5、aof持久化文件配置(仅追加模式)
1、开启与关闭
appendonly,是否以appendonly模式作为持久化方式,默认使用的是rdb方式持久化,所以appendonly模式默认也是关闭状态。要开启aof就改为yes
2、文件名称
appendfilename,可以对aof持久化文件进行命名。
3、aof持久化规则
appendfsync always:每写入一个命令,就调用一次 fsync 函数,将缓冲区里面的命令写入到硬盘。这种模式下,服务器出现故障,也不会丢失任何已经成功执行的命令数据,但是其执行速度较慢;
appendfsync everysec(默认):每一秒调用一次 fsync 函数,将缓冲区里面的命令写入到硬盘。这种模式下,服务器出现故障,最多只丢失一秒钟内的执行的命令数据,通常都使用它作为 AOF 配置策略;
appendfsync no:不主动调用 fsync 函数,因为Linux 系统的 fsync() 函数可以将指定文件的内容从内核缓存刷到硬盘中,所以这种由操作系统决定何时将缓存区里面的命令写入到硬盘的方式及其不安全。这种模式下,服务器遭遇意外停机时,丢失命令的数量是不确定的,所以这种策略,不确定性较大。