Chinaunix首页 | 论坛 | 博客
  • 博客访问: 777943
  • 博文数量: 99
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1163
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-22 09:50
个人简介

一个守望数据库的老菜鸟

文章分类

全部博文(99)

文章存档

2019年(21)

2018年(17)

2017年(37)

2016年(24)

我的朋友

分类: NOSQL

2016-12-24 14:44:19

博客文章除注明转载外,均为原创。转载请注明出处。
本文链接地址:http://blog.chinaunix.net/uid-31396856-id-5757212.html


==Basic settings===
databases 16
数据库数量

maxclients 10000
最大连接数

tcp-backlog 511 
listen队列的长度

maxmemory
最大内存限制

maxmemory-policy allkeys-lru
内存策略设定参数:如果达到内存限制了,Redis如何删除key,redis有如下5个策略:     
 volatile-lru -> 根据LRU算法生成的过期时间来删除。  
 allkeys-lru -> 根据LRU算法删除任何key。  
 volatile-random -> 根据过期设置来随机删除key。  
 allkeys->random -> 无差别随机删。  
 volatile-ttl -> 根据最近过期时间来删除(辅以TTL)  
 noeviction -> 谁也不删,直接在写操作时返回错误。  
   
maxmemory-samples 5
LRU和最小TTL算法的实现都不是很精确,但是很接近(为了省内存),可以采用样例做测试。

daemonize yes
以守护进程方式启动:后台daemon方式运行

timeout 0
客户端连接的超时时间,单位为秒,超时后会关闭连接,0永不超时;

tcp-keepalive 0
检测客户端失败的连接的间隔时间,单位s,设置为0表示禁止检测;

loglevel notice
服务器调试等级。    
debug (很多信息,对开发/测试有用)  
verbose (很多精简的有用信息,但是不像debug等级那么多)  
notice (适量的信息,基本上是你生产环境中需要的程度)  
warning (只有很重要/严重的信息会记录下来
日志记录等级,4个可选值 debug(调试) > verbose(精简) >notice(适量) > warning(警告)

===rdb快照相关===
stop-writes-on-bgsave-error yes
序列化的时候,快照失败是否停止写操作,如果有监控机制,可以考虑no

rdbcompression yes
rdb做快照时压缩

dbfile dump.rdb 
快照文件名称设置

rdbchecksum yes
生成和加载的时候是否开启CRC64检查,开启后消耗性能10%左右,但是会更加安全。

===复制相关参数====
slaveof
masterauth passwd //授权密码  

slave-serve-stale-data yes
当一个slave失去和master的连接,或者同步正在进行中,是否继续响应客户端: 
 1) 如果 slave-serve-stale-data 设置为"yes"(默认值),slave会继续响应客户端请求,可能是正常数据,也可能是还没获得值的空数据。  
 2) 如果 slave-serve-stale-data 设置为 "no",slave会回复"正在从master同步(6SYNC with master in progress)"来处理各种请求,除了 INFO 和 SLAVEOF 命令。

slave-read-only yes
参数是配置:从库只读

repl-disable-tcp-nodelay no
参数是指合并tcp数据包节省带宽,但是会产生40ms左右的延迟;no是马上发送数据,无延迟。

repl-ping-slave-period 10
 slave根据指定的时间间隔向服务器发送ping请求。默认为10s 
 
repl-timeout 60
向master请求数据和ping响应的过期时间,默认为60s。必须比repl-ping-slave-period实际大;

repl-backlog-size 32mb
master为slave保存多大的数据,超过这个大小后也会导致全量复制

repl-backlog-ttl 3600
master和slave断开后master为slave保存多长时间的数据,超过该时间段缓冲区会被释放

slave-priority 80
在主库失败后,从库提升为主库的优先级

==aof参数===
appendonly no
是否开启aof模式

#appendfilename "8888.aof"
aof模式开启后的文件名

#appendfsync everysec
fsync() 请求操作系统把数据写到磁盘上:是否每秒写入数据 
no:不要立刻刷,只有在操作系统需要刷的时候再刷。比较快。  
always:每次写操作都立刻写入到aof文件。慢,但是最安全。  
everysec:每秒写一次。折衷方案。

#no-appendfsync-on-rewrite yes
写aof的时候放弃同步主进程的变化,可能会丢失日志,打不死高并发的时候的响应不会延迟
如果有延迟的问题那就把设为 "yes",否则就保持 "no",这是保存持久数据的最安全的方式。  

#auto-aof-rewrite-percentage 80
aof文件size扩大百分比率的时候重写该日志;

#auto-aof-rewrite-min-size 50000mb
aof文件size增长到多大的时候重写该日志;

#aof-rewrite-incremental-fsync yes
设置为yes,当修改aof文件只要生成32MB数据就进行同步;

==slow log慢日志===
slowlog-log-slower-than 10000
记录超过1s的操作
slowlog-max-len 128
记录128个操作

===虚拟内存
vm-enabled no
是否开启虚拟内存,一般不开启

hash-max-ziplist-entries 512
配置最大元素条目数,当超过配置数目,redis采用特殊hash算法
hash-max-ziplist-value 64
配置最大元素值,超过这个值,采用特殊hash算法
当有大量数据时,适合用哈希编码(需要更多的内存),元素数量上限不能超过给定限制。 

list-max-ziplist-entries 512
list-max-ziplist-value 64
数据元素较少的情况下,可用另一种方式来编码从而节约空间。

set-max-intset-entries 512
数据全是64位无符号整型数字构成的字符串。编码的最大上限
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
有序序列也可以用一种特别的编码方式来处理,可节约空间,这种编码适合长度和元素。
  
activerehashing yes
hash刷新,如果不太在意延迟而希望尽快释放内存的话开启,延迟和内存(容量)直接的性能平衡

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

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

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

hz 10
redis内部调度频率

latency-monitor-threshold 0 
用LATENCY打印redis实例在跑命令时的耗时图表,监视频率,0为不监视

lua-time-limit 5000
限制脚本的最长运行时间,默认为5秒钟

====安全===
#masterauth "password"
#requirepass "password"
# Generated by CONFIG REWRITE
--The end
阅读(5043) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~