redis 常用配置记录

redis版本 5.0.5,是当前最新的稳定版,下面是从官方的配置文件中从头到尾读到配置选项:

bind 绑定的ip,默认是本机,即127.0.0.1,依据实际情况进行设置,比如我会设置为 0.0.0.0

protected-mode 保护模式,默认启用,如果希望来自其他主机的客户机连接到redis时,那么需要禁用此选项

port redis的端口,默认是6379,也可以指定其他端口

tcp-backlog  这个值不大于linux内核中/proc/sys/net/core/somaxconn的值,redis默认的值为511,而linux系统默认的somaxconn值为128,所以当系统并发量很大而客户端速度缓慢的时候,需要这两个参数配合设置使用,附上somaxconn修改方式:

vim /etc/sysctl.conf  在文件中添加:

net.core.somaxconn = 2048

保存退出后执行

sysctl -p

最后 cat /proc/sys/net/core/somaxconn 查看是否修改成功

 timeout 客户端在空闲n秒后关闭连接,默认为0,0表示禁用,可根据情况进行调整

tcp-keepalive  定时向client发送tcp_ack包来探测client是否存活的,在3.2.1版本开始默认开启,默认设置的时间为300s

daemonize 设置是否以守护进程运行redis,默认为 no,而一般的,我们把它设置为yes

supervised 设置是否监管redis守护进程,选项no不监督,upstart或systemd选项为监督,默认不监督

pidfile   建议自己设一个路径存放pid文件,默认为/var/run/redis_6379.pid

loglevel 设置打印日志信息的级别,debug会打印出很多信息,适用于开发和测试阶段;verbose会包括很多不太有用的信息,比dubug信息要少一些;notice适用于生产模式;warning只打印非常重要和非常严重的信息;在生产环境中,我们一般设置为 notice

logfile 可以指定日志文件的路径和文件名,一般自己配置,方便以后查看日志

database 设置数据库个数,默认为16个,即标号从0到15的数据库,可根据实际需要调整

 always-show-logo 设置启动redis时是否打印logo,默认打印

save 默认的save选项设置为:

save 900 1
save 300 10
save 60 10000

即 在900秒内有一个更改,那么就把这个更改从内存写入到磁盘中,同理,下面两句分别是300秒内有10个更改或者60秒内有10000个更改,那么就把更改从内存写入到磁盘中;这三个条件触发任意一个就会执行写入磁盘的操作,参数可根据实际来进行调整

stop-writes-on-bgsave-error 设置当快照失败的时候后续是否停止写数据到磁盘,默认是开启的,即快照失败则停止写入到磁盘,这样会导致一旦有一点写错,后面的操作就不再执行了。综合考虑后,应该默认开启,当遇到快照问题,暂时需要继续写操作的时候进行开启,然后再在合适的时间解决造成快照失败的问题。

rdbcompression 设置快照是否压缩,默认是进行压缩,压缩的话会消耗cpu资源,不压缩则会占用硬盘资源,所以这个要根据服务器的配置进行选择

rdbchecksum 设置是否对rdb数据进行校验,默认是进行校验,这会消耗cpu资源

dbfilename 设置rdb的文件名称,默认是dump.rdb

dir 设置rdb的存放目录,默认是与redis.conf在同一目录下

masterauth master的密码设置,设置连入master节点是否需要密码,如果不需要密码可以直接注释掉这行

replica-serve-stale-data  默认yes,当从节点和主节点的连接断开或者复制正在进行中,如果设置为yes,那么继续提供服务,如果设置为no,那么返回sync with master in progress

replica-read-only 配置从节点是否是只读,默认是只读

repl-diskless-sync 设置主从节点传输数据的方式,默认是no,即主节点生成rdb文件后,传输给从节点;如果设置为yes,则不通过文件的方式,而直接传输给从节点,这个只适用于带宽特别大而硬盘很慢的情况

repl-diskless-sync-delay 当无盘复制开启时,配置延迟

repl-disable-tcp-nodelay 配置是否禁用tcp-nodelay,如果设置yes,会导致主从同步有40ms滞后(linux默认),如果no,则主从同步更及时

replica-priority  这是 replicas 节点通过 INFO 接口给出的信息,默认值为 100。 当 master 节点无法正常工作后 Redis Sentinel 通过这个值来决定将哪个 replicas 节点提升为 master 节点。这个数值越小表示越优先进行提升。如有三个 replicas 节点其 priority 值分别为 10,100,25, Sentinel 会选择 priority 为 10 的节点进行提升。这个值为 0 表示 replica 节点永远不能被提升为 master 节点。

requirepass 设置访问redis的密码

lazyfree-lazy-eviction  默认no,那么redis是同步释放内存,也就是停止完成其他请求来做释放内存操作,如果遇到key复杂度很大时会增加请求延时;如果yes,那么则先删除dict中的key,然后把释放内存的任务提交给后台线程做
lazyfree-lazy-expire   默认no,那么redis是同步删除过期key,也就是停止完成其他请求来做删除过期key,如果遇到key复杂度很大时会增加请求延时;如果yes,把删除key的任务提交给后台线程做
lazyfree-lazy-server-del 默认no,那么redis是同步删除key,也就是停止完成其他请求来做删除key,如果遇到key复杂度很大时会增加请求延时;如果yes,那么则先删除dict中的key,然后把删除key的任务提交给后台线程做
replica-lazy-flush  默认no,那么redis是同步清空数据库,也就是停止完成其他请求来做清空数据库,如果遇到数据库很大会增加请求延时;如果yes,那么则新建dict等数据结构,然后把清空数据库提交给后台线程做

appendonly 设置是否开启aof,aof优势在于数据的完整性和一致性更高,如果在重要的生产环境下,建议ROF和AOF都开启

appendfilename 设置AOF文件名,默认是appendonly.aof

appendfsync 指定日志更新条件,三个选项,always为同步持久化,每次发生数据变化立刻会写入到磁盘中,性能较差但是数据完整性比较好;默认为 everysec,每秒异步记录一次;no为不等待磁盘同步,直接写入aof文件

no-appendfsync-on-rewrite  这个参数设置为no,是最安全的方式,不会丢失数据,但是要忍受阻塞的问题。若设置为yes则相当于将appendfsync设置为no,这说明并没有执行磁盘操作,只是写入了缓冲区,所以并不会造成阻塞(因为没有竞争磁盘),但是如果这个时候redis挂掉,就会丢失数据。在linux的操作系统的默认设置下,最多会丢失30s的数据。综上,如果应用系统无法忍受延迟,而可以容忍少量的数据丢失,则设置为yes。如果应用系统无法忍受数据丢失,则设置为no。

auto-aof-rewrite-percentage  相对于上次aof文件大小的增长百分比如果超过这个值,则重写aof,默认是100
auto-aof-rewrite-min-size 自动重写aof文件的最小大小,比 auto-aof-rewrite-percentage优先级高,默认是64mb

aof-use-rdb-preamble aof前部分用rdb,后面保存时缓存的命令还是用aof格式,这样做的优点是保存和恢复更快,默认yes

lua-time-limit lua脚本的最大执行时间,超过这个时间后,恢复客户端的查询错误,默认5000,0或者负数则无限制

slowlog-log-slower-than 执行命令大于这个值计入慢日志,如果设置为0,则所有命令全部记录慢日志,单位毫秒,默认10000毫秒

slowlog-max-len  最大的慢日志条数,慢日志会占用内存,可通过slowlog reset来释放内存,可通过slowlog len来查看当前条数,默认128条

latency-monitor-threshold  为了收集可能导致延时的数据根源,redis延时监控系统在运行时会采样一些操作,通过 latency命令可以打印一些图样和获取一些报告,这个系统仅仅记录那个执行时间大于或等于slowlog-log-slower-than指定的时间,当设置为0时这个监控系统关闭,单位毫秒,默认配置为0

hash-max-ziplist-entries hash中的项数量小于或等于这个值使用ziplist,超过这个值使用hash,默认为512

hash-max-ziplist-value hash 中的项大小小于或等于这个值使用ziplist,超过这个值使用hash,默认为64

list-max-ziplist-size 负值表示节点大小,正值表示节点数量,默认-2,表示每个list节点大小不超过8Kb,如果满足设置,则使用ziplist表示,节约内存;若不满足设置则使用普通的list

list-compress-depth  不压缩quicklist 距离首尾节点小于等于这个值的ziplist节点,默认首尾节点不压缩,例如如果设置为1,而list为 head->next->...->prev->tail,那么不压缩next,prev,以此类推,默认为0,0表示都不压缩

set-max-intset-entries 当set 的元素数量小于这个值且元素可以用int64范围的整型表示时,使用inset,节约内存,大于或者元素无法用int64范围的整型表示时用set表示,默认为512

zset-max-ziplist-entries  当sorted set 的元素数量小于这个值时,使用ziplist,节约内存,大于这个值zset表示,默认为128

zset-max-ziplist-value  当sorted set 的元素大小小于这个值时,使用ziplist,节约内存,大于这个值zser表示,默认为64

hll-sparse-max-bytes 大于这个值,hyperloglog使用稠密结构,小于等于这个值,使用稀疏结构,大于16000无意义,默认为3000

stream-node-max-bytes 设置stream的最大内存开销字节数,默认为4096

stream-node-max-entries 设置stream的最大项数量,默认为100

activerehashing 默认每1秒10次消耗1ms来做rehashing来释放内存,会增加请求的延时,如果对延时敏感,则设置no,默认yes

client-output-buffer-limit  格式client-output-buffer-limit
当client-output-buffer达到hard limit或者保持超过soft limit 持续sof seconds则断开连接,其中class 分为3种,normal 为普通客户端,replica为从节点,pubsub表示至少一个channel或者pattern的客户端,默认配置如下:

client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 调节可以让redis再空闲时间更多的做一些任务(如关闭超时客户端等),默认为10

dynamic-hz 根据客户端连接数自动调节hz,默认为yes

aof-rewrite-incremental-fsync 若设置为yes,则每32mb 执行fsync一次(增量式,避免一次性大写入导致的延时),设置no,则一次性fsync,默认为yes

rdb-save-incremental-fsync 若设置yes,则每32mb 执行fsync一次(增量式,避免一次性大写入导致的延时),设置no,则一次性fsync,默认为yes

 

你可能感兴趣的:(小败的一些服务搭建记录)