首页 > 技术文章 > redis配置文件redis.conf详解

yuanweidao 2020-10-19 20:31 原文

redis-server启动时就需要一个redis.conf配置文件,所以要设置不同的redis-server,就必须要了解配置文件中的各个内容。这里罗列了一些配置,在文件中顺序从上至下。

1.单位对大小写不敏感

2.可以包含多个配置文件,将其他配置文件的内容放在该配置文件里

3.网络(重点)设置绑定的ip。

指定ip可以访问到redis服务,若配置集群则需要修改此处

 

protected-mode 保护模式默认yes开启,若需要远程连接则需要设置为no。

port为服务占用的端口

 3.密码。设置客户端登录连接redis服务所需要的授权密码。授权方式为 auth [password]

 4.daemonize进程方式运行redis-server,默认为no。一般需要后台运行server,都需要修改为yes

 5.pidfile。若server以后台的方式运行,则需要对应的进程文件

6.配置日志

loglevel 日志级别;

logfile 日志输出路径和文件名称;若为空,则标准输出(输出在控制台上),不进行存储。

7.数据库的数量。默认16个(0~15)

 8.持久化

redis是内存存储,如果没有持久化,那么数据断电即失。redis默认使用rdb的方式持久化

①、save:这里是用来配置触发 Redis的 RDB 持久化条件,也就是什么时候将内存中的数据保存到硬盘。比如“save m n”。表示m秒内数据集存在n次修改时,自动触发bgsave

  默认如下配置:

save 900 1:表示900 秒内如果至少有 1 个 key 的值变化,则保存
save 300 10:表示300 秒内如果至少有 10 个 key 的值变化,则保存
save 60 10000:表示60 秒内如果至少有 10000 个 key 的值变化,则保存

 当然如果你只是用Redis的缓存功能,不需要持久化,那么你可以注释掉所有的 save 行来停用保存功能。可以直接一个空字符串来实现停用:save ""

②、stop-writes-on-bgsave-error :默认值为yes。当启用了RDB且最后一次后台保存数据失败,Redis是否停止接收数据。这会让用户意识到数据没有正确持久化到磁盘上,否则没有人会注意到灾难(disaster)发生了。如果Redis重启了,那么又可以重新开始接收数据了

③、rdbcompression ;默认值是yes。对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。

④、rdbchecksum :默认值是yes。在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能。

⑤、dbfilename :设置快照的文件名,默认是 dump.rdb

⑥、dir:设置快照文件的存放路径,这个配置项一定是个目录,而不能是文件名。默认是位于启动redis服务的当前pwd路径

  也就是说通过在配置文件中配置的 save 方式,当实际操作满足该配置形式时就会进行 RDB 持久化,将当前的内存快照保存在 dir 配置的目录中,文件名由配置的 dbfilename 决定。

 9.主从复制相关配置,

replicaof <masterip> <masterport>:配置所属的主服务器,主服务器ip地址和端口。注意主服务器要配合修改bind

masterauth <master-password>:连接主服务器的密码

 10.maxclients 设置同时连接redis的客户端的最大数量

 

 11.maxmemory定义可用最大物理内存

 12.maxmemory-policy 设置内存达到上限之后的处理策略:https://www.cnblogs.com/yueerya/p/11507898.html

noeviction: 不删除策略, 达到最大内存限制时, 如果需要更多内存, 直接返回错误信息。(默认值) 

allkeys-lru: 所有key通用; 优先删除最近最少使用(less recently used ,LRU) 的 key。

volatile-lru: 只限于设置了 expire 的部分; 优先删除最近最少使用(less recently used ,LRU) 的 key。

allkeys-random: 所有key通用; 随机删除一部分 key。

volatile-random: 只限于设置了 expire 的部分; 随机删除一部分 key。

volatile-ttl: 只限于设置了 expire 的部分; 优先删除剩余时间(time to live,TTL) 短的key。

redis中并不会准确的删除所有键中最近最少使用的键,而是随机抽取maxmeory-samples个键,删除这三个键中最近最少使用的键。

13.APPEND ONLY MODE为aof配置

appendonly 默认为 no,默认关闭

appendfilename,aof持久化文件的名字

appendfsync always,每次修改都会同步,消耗性能

appendfsync everysec,每秒执行一次同步,若宕机则可能失去这1s的数据

appendfsync no,不执行同步,这个时候操作系统自己同步数据,速度最快

推荐阅读