您的位置:首页 > 数据库 > Redis

Redis配置详解

2016-05-26 17:56 671 查看
1、Redis配置

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

pidfile
指定存储Redis进程号的文件路径

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

tcp-backlog
此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度, 当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一起参考设定。

timeout
客户端和Redis服务端的连接超时时间,默认是0,表示永不超时。

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

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

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

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

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

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

默认是notice级别。

logfile
日志的存储路径

databases
可用的数据库数,默认值为16,默认数据库为0,数据库范围在0-(database-1)之间,个人觉得DB的概念类似于命名空间

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

stop-writes-on-bgsave-error
当持久化出现错误之后,是否继续提供写服务

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

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

镜像文件的名字

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

masterauth
设置访问master服务器的密码

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
按键通知事件

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

slowlog-log-slower-than

设定执行时间,单位是毫秒,执行时长超过该时间的命令将会被记入log。-1表示不记录slow log; 0强制记录所有命令。 

slowlog-max-len 

slow log的条数。最小值为0。如果日志队列已超出最大长度,则最早的记录会被从队列中清除

hash-max-zipmap-entries 64

hash-max-zipmap-value 512
Hash编码使用高速内存数据结构的条目阈值
如果redisObject的type 成员值是 REDIS_LIST 类型的,则当该list 的 elem数小于配置值: hash-max-ziplist-entries 或者elem_value字符串的长度小于 hash-max-ziplist-value, 则可以编码成 REDIS_ENCODING_ZIPLIST 类型存储,以节约内存. 否则采用 Dict 来存储.
很多数据类型都可以通过特殊编码的方式来进行存储空间的优化。其中,Hash、List和由Integer组成的Sets都可以通过该方式来优化存储结构,以便占用更少的空间,在有些情况下,可以省去9/10的空间。

list-max-ziplist-entries 512

list-max-ziplist-value 64
相同哈希值的列表可以用特殊的表示方式存储,以节约空间,阈值设置如下
如 type 是 REDIS_LIST 类型的,如果其 entry 小于配置值: list-max-ziplist-entries 或 value字符串的长度小于 list-max-ziplist-value,则可以编码成 REDIS_ENCODING_ZIPLIST 类型存储,以节约内存; 否则采用 REDIS_ENCODING_LINKEDLIST 来存储

set-max-intset-entries 512
如 type 是 REDIS_SET 类型的,如果其值可以表示成数字类型且 entry 小于配置值set-max-intset-entries, 则可以编码成 REDIS_ENCODING_INTSET 类型存储,以节约内存; 否则采用 Dict类型来存储

zset-max-ziplist-entries 128

zset-max-ziplist-value 64
相同的hash列表中,排序列表的元素和长度都不能高于配置值

activerehashing yes

重建hash表的时候如果内存不足 如果此值设置为no则延时,如果为yes则尽快释放内存。

hll-sparse-max-bytes 5000 
配置超重对数基数,CPU比较牛的情况下可以上10000

client-output-buffer-limit normal 0 0 0
对客户端输出缓冲进行限制可以强迫那些就不从服务器读取数据的客户端断开连接。对于normalclient,第一个0表示取消hardlimit,第二个0和第三个0表示取消soft limit,normalclient默认取消限制,因为如果没有寻问,他们是不会接收数据的

client-output-buffer-limit slave 256mb 64mb 60
对于slaveclient和MONITER client,如果client-output-buffer一旦超过256mb,又或者超过64mb持续60秒,那么服务器就会立即断开客户端连接。

client-output-buffer-limit pubsub 32mb 8mb 60
对于pubsub client,如果client-output-buffer一旦超过32mb,又或者超过8mb持续60秒,那么服务器就会立即断开客户端连接。

hz 10
一个任务可以使用的cpu数目
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis redis.conf