设为首页 收藏本站
查看: 1006|回复: 0

[经验分享] redis配置文件的讲解

[复制链接]

尚未签到

发表于 2018-11-6 11:44:48 | 显示全部楼层 |阅读模式
//redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes时,启用守护进程  
daemonize yes
  
//PID文件
  
pidfile redis-book-6399.pid
  
//端口
  
port 6399
  
//当客户端闲置多长时间,关闭连接,单位秒
  
timeout 216000
  
//如果值非0,单位是秒,表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,官方给出的建议值是60S。
  
tcp-keepalive 0
  
//Redis总共支持四个级别:debug、verbose、notice、warning。
  
//Debug:记录很多信息,用于开发和测试;
  
//Varbose:有用的信息,不像debug会记录那么多;
  
//Notice:普通的verbose,常用于生产环境;
  
//Warning:只有非常重要或者严重的信息会记录到日志;
  
//默认是notice级别。
  
loglevel notice
  
//日志存储的路劲
  
logfile "redis-book-6399.log"
  
//可用的数据库数,默认值为16,默认数据库为0,数据库范围在0-(database-1)之间
  
databases 1
  
//当持久化出现错误之后,是否继续提供写服务
  
stop-writes-on-bgsave-error yes
  
//持久化到RDB文件时,是否压缩,“yes”为压缩,“no”则反之
  
rdbcompression yes
  
//读取和写入的时候是否支持CRC64校验,默认是开启的
  
rdbchecksum yes
  
//镜像文件的名字
  
dbfilename redis-6399-dump.rdb
  
//当前工作目录,配置文件和镜像文件等都在此目录下
  
dir redis/data/
  
//当slave服务器和master服务器失去连接后,或者当数据正在复制传输的时候,如果此参数值设置“yes”,slave服务器可以继续接受客户端的请求,否则,会返回给请求的客户端如下信息“SYNC with master in progress”
  
slave-serve-stale-data yes
  
//是否允许slave服务器节点只提供读服务
  
slave-read-only no
  
//指定向slave同步数据时,是否禁用socket的NO_DELAY选 项。若配置为“yes”,则禁用NO_DELAY,则TCP协议栈会合并小包统一发送,这样可以减少主从节点间的包数量并节省带宽,但会增加数据同步到 slave的时间。若配置为“no”,表明启用NO_DELAY,则TCP协议栈不会延迟小包的发送时机,这样数据同步的延时会减少,但需要更大的带宽。 通常情况下,应该配置为no以降低同步延时,但在主从节点间网络负载已经很高的情况下,可以配置为yes。
  
repl-disable-tcp-nodelay no
  
//指定slave的优先级。在不只1个slave存在的部署环境下,当master宕机时,Redis Sentinel会将priority值最小的slave提升为master。需要注意的是,若该配置项为0,则对应的slave永远不会自动提升为master。
  
slave-priority 100
  
//开启append only 模式之后,redis 会把所接收到的每一次写操作请求都追加到appendonly.aof 文件中,当redis 重新启动时,会从该文件恢复出之前的状态。但是这样会造成appendonly.aof 文件过大,所以redis 还支持了BGREWRITEAOF 指令,对appendonly.aof 进行重新整理。默认是不开启的。
  
appendonly no
  
//设置aof的同步频率,有三种选择always、everysec、no,默认是everysec表示每秒同步一次。
  
appendfsync everysec
  
//指定是否在后台aof文件rewrite期间调用fsync,默认为no,表示要调用fsync(无论后台是否有子进程在刷盘)。Redis在后台写RDB文件或重写afo文件期间会存在大量磁盘IO,此时,在某些linux系统中,调用fsync可能会阻塞。
  
no-appendfsync-on-rewrite no
  
//可以用这种方式关掉非常危险的命令,如FLUSHALL这个命令,它清空整个 Redis 服务器的数据,而且不用确认且从不会失败
  
rename-command FLUSHALL ""
  
//指定Redis重写aof文件的条件,默认为100,表示与上次rewrite的aof文件大小相比,当前aof文件增长量超过上次afo文件大小的100%时,就会触发background rewrite。若配置为0,则会禁用自动rewrite
  
auto-aof-rewrite-percentage 100
  
//指定触发rewrite的aof文件大小。若aof文件小于该值,即使当前文件的增量比例达到auto-aof-rewrite-percentage的配置值,也不会触发自动rewrite。即这两个配置项同时满足时,才会触发rewrite。
  
auto-aof-rewrite-min-size 64mb
  
//一个Lua脚本最长的执行时间,单位为毫秒,如果为0或负数表示无限执行时间,默认为5000
  
lua-time-limit 5000
  
//下面的时间单位是微秒,所以1000000就是1秒。注意,负数时间会禁用慢查询日志,而0则会强制记录所有命
  
slowlog-log-slower-than 10000
  
//慢日志长度 这个长度没有限制。只是要主要会消耗内存。你可以通过 SLOWLOG RESET 来回收内存。
  
slowlog-max-len 128
  
//带一个由0到多个字符组成的字符串参数。空字符串意思是通知被禁用
  
notify-keyspace-events ""
  
//针对hash类型,只要hash的filed在这个范围内使用紧凑存储,这可以节约存储,也是为什么要尽量使用hash少使用string的理由,特别是在原子计数的时候,对一个用户可能要记录很多数量,一定要采用hash的策略,这是非常有用的。当然这个值绝不是越大越好,通常不要超过1024
  
hash-max-ziplist-entries 512
  
//hash的value的大小,在这个大小内会使用紧凑存储。这个值也不是越大越好,最好不要超过512。
  
hash-max-ziplist-value 256
  
//下面这两个参数和hash用法是一样的 ,但是针对list
  
list-max-ziplist-entries 512
  
list-max-ziplist-value 64
  
// set有一种特殊编码的情况:当set数据全是十进制64位有符号整型数字构成的字符串时。下面这个配置项就是用来设置set使用这种编码来节省内存的最大长度。
  
set-max-intset-entries 512
  
//与hash和list相似,有序集合也可以用一种特别的编码方式来节省大量空间。这种编码只适合长度和元素都小于下面限制的有序集合
  
zset-max-ziplist-entries 128
  
zset-max-ziplist-value 64
  
//指定是否激活重置哈希,默认为开启
  
activerehashing yes
  
//Redis 的output buffer限制 用来强行断开那么些读取速度比较慢的客户端(比如发布订阅模式,订阅者不能像发布者发布消息那样很快的接受到订阅信息),
  
//3种不同的客户端:
  
//normal -> normal clients
  
//slave  -> slave clients and MONITOR clients
  
//pubsub -> 客户端至少订阅了一个频道或者模式
  
//基本语法为:
  
//client-output-buffer-limit   
  
//当达到hard limit 限制的时候,server立即断开连接,或者当达到soft limit限制后,持续时间达到 soft seconds 。
  
//把参数都变为0,就不会有限制。
  
client-output-buffer-limit normal 0 0 0
  
client-output-buffer-limit slave 1024mb 256mb 120
  
client-output-buffer-limit pubsub 32mb 8mb 60
  
//Redis 调用内部函数来执行后台task,比如关闭已经timeout连接,删除过期的keys并且永远不会被访问到的,
  
//执行频率根据 hz 后面的值来确定。在Redis 比较空闲的时候,提高这个值,能充分利用CPU,让Redis相应速度更快,
  
//可取范围是1-500 ,建议值为 1--100
  
hz 10
  
//当子进程重写AOF文件,以下选项开启时,AOF文件会每产生32M数据同步一次 有助于更快写入文件到磁盘避免延迟
  
aof-rewrite-incremental-fsync yes
  
//增加了部分复制功能,在处理网络闪断的情况下是非常有效的,这也是出Redis集群之前需要提供的基本保证。默认1Mb的repl_backlog在访问量大的情况下可能效果未必理想,这个可以通过更改配置文件中的repl-backlog-size的值实现repl_backlog的大小的调整。还有repl_backlog在没有Slave的情况下过多久再释放的时间阈值也可以通过配置文件中的repl-backlog-ttl进行调整
  
repl-backlog-size 20mb
  
//当master在一段时间内不再与任何slave连接,backlog将会释放。以下选项配置了从最后一个slave断开开始计时多少秒后,backlog缓冲将会释放。0表示永不释放backlog
  
repl-backlog-ttl 86400



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-631516-1-1.html 上篇帖子: [项目回顾]基于Redis的在线用户列表解决方案 下篇帖子: Redis set和zset数据类型
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表