redis的配置文件存放位置

windows系统下,redis的默认配置文件放在安装目录的根目录,即redis.windows.conf

redis 默认策略 redis默认存储位置_配置文件


linux系统下,redis的默认配置文件存放在安装目录的根目录,即redis.conf

redis 默认策略 redis默认存储位置_客户端_02


该篇以linux下的配置文件为例,

redis配置文件的注释

redis 默认策略 redis默认存储位置_配置文件_03


这一段文字出现在redis.conf中的第3行-13行,讲解了两个方面

  1. redis配置文件的单位,以bytes为基础
  2. redis配置文件的单位不区分大小写

redis 默认策略 redis默认存储位置_redis_04


这一段文字出现在redis.conf中的第15行-31行,讲解了includes方块。

  1. redis.conf可以像struts.xml配置文件,以当前配置文件为根,导入其他配置文件

接下来是general(通用)模块,在redis.conf的33行到118行

redis 默认策略 redis默认存储位置_redis_05


daemonize

守护线程,默认以前台线程启动。将值设置为yes,将后台运行。redis instance会将进程号pid写入默认文件/var/run/redis.pid。

pidfile

设置pid文件的存放位置,默认为/var/run/redis.pid

port

端口号,默认为6379,此处可设置,当不同端口号的客户端启动,将意味这些是不同客户端,可理解为分布式

redis 默认策略 redis默认存储位置_客户端_06


tcp-backlog

设置tcp的backlog,backlog其实是一个TCP连接中的队列,backlog队列总和=未完成三次握手队列 + 已经完成三次握手队列。

在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。注意这个值不能大于Linux系统在/proc/sys/net/core/somaxconn设定的值的值,默认511

redis 默认策略 redis默认存储位置_redis 默认策略_07


bind

redis默认情况下会在服务器上所有有效的网络接口上监听客户端连接,如果想他在指定的一个或多个网络接口上监听,可以绑定一个或多个ip,以此来做限定,多个ip用空格隔开

redis 默认策略 redis默认存储位置_redis 默认策略_08


timeout

当客户端闲置多少秒后关闭连接,设置为0表示关闭此功能,默认关闭

redis 默认策略 redis默认存储位置_redis_09


tcp-keepalive

单位为妙,表示使用SO_KEEPALIVE检测客户端是否处于健康状态,避免服务器长时间处于堵塞状态

redis 默认策略 redis默认存储位置_客户端_10


loglevel

日志级别。有四个选项,

debug(记录大量日志信息,开发测试阶段使用),

verbose(较多日志信息),

notive(适量日志信息,使用于生产环境),

warning(仅有部分重要、关键信息才会被记录)

redis 默认策略 redis默认存储位置_配置文件_11


logfile

日志文件的位置,当指定为空字符串时,为标准输出,如果redis已守护进程模式运行,那么日志将会输出到 /dev/null 。

redis 默认策略 redis默认存储位置_redis_12


syslog-enabled

是否把日志记录到系统日志。默认注释掉

redis 默认策略 redis默认存储位置_redis 默认策略_13


database

设置数据库的数目,默认16个,下标为0-15的数值


接下来是SNAPSHOTTING(快照)模块,在redis.conf的120行到187行,此块涉及到redis的持久化–rdb

redis 默认策略 redis默认存储位置_redis_14


save

保存快照数据到磁盘,格式是save < seconds> < changes> 。意思是当多少秒内改变了多少个keys就保存一次到磁盘文件中。

save 900 1 当900秒内改变1次key就保存

save 300 10 当300秒内改变10次key就保存

save 60 10000 当60秒内改变10000次key就保存

如果想禁用rdb功能,可以将save传空参,即save “”,或者注释掉所有save

redis 默认策略 redis默认存储位置_配置文件_15


stop-writes-on-bgsave-error

默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘, 否则就会没人注意到灾难的发生。 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。

然而你要是安装了靠谱的监控,你不在乎数据不一致,你就改成 no 好了。

redis 默认策略 redis默认存储位置_配置文件_16


rdbcompression

对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能

redis 默认策略 redis默认存储位置_客户端_17


rdbchecksum

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

redis 默认策略 redis默认存储位置_redis_18


dbfilename

快照文件rdb的文件名dir

快照文件rdb的存放目录,同时,aof文件也会存放在该目录,默认当前目录

redis 默认策略 redis默认存储位置_客户端_19


接下来是SECURITY(安全)模块,在redis.conf的378行到411行,

redis 默认策略 redis默认存储位置_redis_20


requirepass

设置redis连接密码,默认是不用密码的


接下来是LIMITS(限制)模块,在redis.conf的412行到483行,

redis 默认策略 redis默认存储位置_redis 默认策略_21


Maxclients

设置redis同时可以与多少个客户端进行连接。默认情况下无限制

当你无法设置进程文件句柄限制时,redis会设置为当前的文件句柄限制值减去32,因为redis会为自身内部处理逻辑留一些句柄出来。如果达到了此限制,redis则会拒绝新的连接请求,并且向这些连接请求方发出“max number of clients reached”以作回应。

redis 默认策略 redis默认存储位置_redis 默认策略_22


maxmemory

设置redis可以使用的内存量。一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。

redis 默认策略 redis默认存储位置_redis 默认策略_23


maxmemory-policy

当内存使用达到最大值时,redis使用的移除规则。

1. volatile-lru 利用LRU算法移除设置过过期时间的key (LRU:最近使用 Least Recently Used )

2. allkeys-lru 利用LRU算法移除任何key

3. volatile-random 移除设置过过期时间的随机key

4. volatile-ttl 移除即将过期的key(minor TTL)

5. noeviction noeviction 不移除任何key,只是返回一个写错误 。默认选项

6. allkeys-random 移除随机key

redis 默认策略 redis默认存储位置_redis_24


maxmemory-samples

设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小,


接下来是APPEND ONLY MODE(快照)模块,在redis.conf的484行到600行,此块涉及到redis的持久化–aof(APPEND ONLY MODE追加模式)

redis 默认策略 redis默认存储位置_客户端_25


appendonly

是否启用aof持久化方式 。即是否在每次更新操作后进行日志记录,默认配置是no

redis 默认策略 redis默认存储位置_配置文件_26


appendfilename

aof日志文件的文件名,默认值为appendonly.aof

redis 默认策略 redis默认存储位置_客户端_27


appendfsync

aof文件刷新的频率。有三种:

  1. no 依靠OS进行刷新,redis不主动刷新AOF,这样最快,但安全性就差。
  2. always 每提交一个修改命令都调用fsync刷新到AOF文件,非常非常慢,但也非常安全
  3. everysec每秒钟都调用fsync刷新到AOF文件,很快,但可能会丢失一秒以内的数据。
    默认everysec

redis 默认策略 redis默认存储位置_配置文件_28


auto-aof-rewrite-percentage

auto-aof-rewrite-min-size

设置重写的基准值,当AOF文件增长到一定大小的时候Redis能够调用 BGREWRITEAOF 对日志文件进行重写 。当AOF文件大小大于该配置项时自动开启重写。