Redis配置文件大全

1.INCLUDES

# include /path/to/local.conf
# include /path/to/other.conf

如果多个redis-server使用同一个通用配置模版,比如  /etc/redis/redis.conf

但每个server可能又存在一些独特的配置项,那么使用 include 是很明智的选择

include 一个或多个配置文件,这将和通用配置模板一起作用于redis-server

通常最好把 include 命令放在最后一行,因为后面的配置项能覆盖前面的配置项!

2.GENERAL+SECURITY+LIMITS+Append+REPLICATION

属性

说明

daemonize

如果值是“yes”,则启动服务的时候是后台守护进程形式,如果值是“no”,则相反

如果设置为守护进程模式,那么还需配置 pidfile

pidfile

指定存储Redis进程号的文件路径:以守护进程启动redis时才需要配置!

port

指定当前Redis服务的端口,默认为6379

tcp-backlog

客户端和redis建立tcp连接需要经历3次握手,才能进行数据通讯。linux 内核默认在每个端口(比如redis就是6379)最大允许建立128个监听,这是在 /proc/sys/net/core/somaxconn 配置的。为了在高并发情况下,减少连接出错的情况,建议增大 tcp-backlog 配置的数量,redis默认是511。但是这会被 linux 内核的 somaxconn 配置所截断!因此为了确保配置生效,建议增大 somaxconn 配置的值!《somaxconn作用参考

bind

redis默认允许来自所有客户端的连接,bind指定只能来自哪些客户端的连接。

该处说明bind的是interface,也就是说是网络接口。服务器可以有一个网络接口(通俗的说网卡),或者多个。打个比方说机器上有两个网卡,分别为192.168.205.5 和192.168.205.6,如果bind 192.168.205.5,那么只有该网卡地址接受外部请求,如果不绑定,则两个网卡口都接受请求。

timeout

设置连接空闲多少秒之后自动关闭。如果设置为0,则永不关闭空闲连接。

tcp-keepalive

如果值非0,单位是秒,表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,官方给出的建议值是60S。

keepalive意味着长连接,由server端来维护,要消耗server的性能。

loglevel

Redis总共支持四个级别:debug、verbose、notice、warning。

Debug:记录很多信息,用于开发和测试;

Varbose:有用的信息,不像debug会记录那么多;

Notice:普通的verbose,常用于生产环境;

Warning:只有非常重要或者严重的信息会记录到日志;

默认是notice级别。

logfile

日志的存储路径

databases

可用的数据库数,默认值为16,默认数据库为0,数据库范围在0-(database-1)之间。

比如设置为16,那么数据库的索引号就是是 0~15 

可以使用 select 0 表示进入第一个数据库,select 1 表示进入第二个数据库。一旦select进入某个数据库,那么命令就在这个数据库生效!

save

保存数据库快照信息到磁盘,其对应的值有两个,比如save 300 10表示:300秒内至少有300个key被改变时,触发保存信息到磁盘的事件。

stop-writes-on-bgsave-error

当持久化出现错误之后,是否停止提供写服务。默认 yes ,即持久化出错时停止提供写服务!

rdbcompression

持久化到RDB文件时,是否压缩,“yes”为压缩,“no”则反之

rdbchecksum

读取和写入的时候是否支持CRC64校验,默认是开启的

dbfilename

镜像文件的名字

dir

当前工作目录,配置文件和镜像文件等都在此目录下

masterauth

设置访问master服务器的密码,只要当 requirepass 节点配置了matser密码时,才需要配置masterauth节点

slave-serve-stale-data

当slave服务器和master服务器失去连接后,或者当数据正在复制传输的时候,如果此参数值设置“yes”,slave服务器可以继续接受客户端的请求,否则,会返回给请求的客户端如下信息“SYNC with master in progress”

slave-read-only

是否允许slave服务器节点只提供读服务

repl-disable-tcp-nodelay

指定向slave同步数据时,是否禁用socket的NO_DELAY选项。若配置为“yes”,则禁用NO_DELAY,则TCP协议栈会合并小包统一发送,这样可以减少主从节点间的包数量并节省带宽,但会增加数据同步到slave的时间。若配置为“no”,表明启用NO_DELAY,则TCP协议栈不会延迟小包的发送时机,这样数据同步的延时会减少,但需要更大的带宽。通常情况下,应该配置为no以降低同步延时,但在主从节点间网络负载已经很高的情况下,可以配置为yes。

slave-priority

指定slave的优先级。在不只1个slave存在的部署环境下,当master宕机时,Redis Sentinel会将priority值最小的slave提升为master。需要注意的是,若该配置项为0,则对应的slave永远不会自动提升为master。

appendonly

开启append only 模式之后,redis 会把所接收到的每一次写操作请求都追加到appendonly.aof 文件中,当redis 重新启动时,会从该文件恢复出之前的状态。但是这样会造成appendonly.aof 文件过大,所以redis 还支持了BGREWRITEAOF 指令,对appendonly.aof 进行重新整理。默认是不开启的。

appendfilename

默认为appendonly.aof。

appendfsync

设置aof的同步频率,有三种选择always、everysec、no,默认是everysec表示每秒同步一次。

no-appendfsync-on-rewrite

指定是否在后台aof文件rewrite期间调用fsync,默认为no,表示要调用fsync(无论后台是否有子进程在刷盘)。Redis在后台写RDB文件或重写afo文件期间会存在大量磁盘IO,此时,在某些linux系统中,调用fsync可能会阻塞。

auto-aof-rewrite-percentage

指定Redis重写aof文件的条件,默认为100,表示与上次rewrite的aof文件大小相比,当前aof文件增长量超过上次afo文件大小的100%时,就会触发background rewrite。若配置为0,则会禁用自动rewrite

auto-aof-rewrite-min-size

指定触发rewrite的aof文件大小。若aof文件小于该值,即使当前文件的增量比例达到auto-aof-rewrite-percentage的配置值,也不会触发自动rewrite。即这两个配置项同时满足时,才会触发rewrite。

lua-time-limit

一个Lua脚本最长的执行时间,单位为毫秒,如果为0或负数表示无限执行时间,默认为5000

notify-keyspace-events

见参考3,按键通知事件

aof-rewrite-incremental-fsync

aof rewrite过程中,是否采取增量文件同步策略,默认为“yes”。 rewrite过程中,每32M数据进行一次文件同步,这样可以减少aof大文件写入对磁盘的操作次数

requirepass

设置redis 访问密码。如果设置了密码,则使用redis-cli客户端或和其他客户端连接时,需要设置密码才能访问。

比如 redis-cli 访问redis,则先输入【auth  密码 】 才能成功连接上

而使用Jedis访问,则要调用 jedsi.auth(密码)  方法,才能连上

rename-command

重命名命令,比如 rename-command set  set1   那么就可以像使用set一样来使用 set1 命令了

这个配置一般是redis在比较复杂不太安全的情况下,需要对一些系统级的重要命令重命名。以防止这些命名被误操作了!

比如 flushall  flushdb 这种清除redis内存的命令,就可以重命名

maxclients

设置最大允许并发数,如果不设置的话,redis默认允许同时有32个连接

maxmemory

设置最大内存,单位是字节。比如 maxmemory 1024 就之允许使用1K的内存

不过这个设置要结合 maxmemory-policy 即【最大内存使用策略】来使用。

如果 maxmemory-policy 设置为【不回收内存】策略,那么当内存达到 maxmemory 上限后,诸如 set、lpush 命令将不能正常使用。get 等一些只读命令仍然可以使用。

maxmemory-policy

最大内存使用策略,有如下几种方式:其中LRU表示最近最少使用算法,这是很多组件或应用经常使用的一种算法

# volatile-lru -> remove the key with an expire set using an LRU algorithm

# allkeys-lru -> remove any key accordingly to the LRU algorithm
# volatile-random -> remove a random key with an expire set
# allkeys-random -> remove a random key, any key
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
# noeviction -> don't expire at all, just return an error on write operations
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值