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

[经验分享] redis配置文件详解(一)

[复制链接]

尚未签到

发表于 2018-11-5 12:33:09 | 显示全部楼层 |阅读模式
  Redis配置文件被分成几大块区域,分别是:
  1.通用(general)
  2.快照(snapshotting)
  3.复制(replication)
  4.安全(security)
  5.限制(limits)
  6.追加模式(append only mode)
  7.LUA脚本(lua scripting)
  8.Redis集群(redis cluster)
  9.慢日志(slow log)
  10.延迟监控(latency monitor)
  11.事件通知(event notification)
  12.高级配置(advanced config)
  注: INCLUDES配置:当机器不只存在1个Redis实例时,可以实现每个Redis实例的"个性化"配置,此时,可以将这些实例的共有配置写到redis.conf中,而个性化的配置写到由include配置路径指定的文件中。
  1. 通用(general):
1234567891011############################  GENERAL  #################################daemonize no                    ##是否以后台daemon方式运行(默认为no)pidfile /var/run/redis/redis.pid     ##Pid文件位置port 6379                         ##监听端口tcp-backlog 511            ##客户端连接队列值, 在高并发的环境中,为避免慢客户端的连接问题,需要设置一个高速后台日志bind 127.0.0.1                ##指定redis所响应的连接请求(默认响应本机所有网卡的连接请求)timeout 0                                ##请求超时时间(0表示永不关闭)tcp-keepalive 0                   ##TCP存活检测(单位为秒,0表示不进行检测)loglevel notice           ##log信息级别(分四级,即debug、verbose、notice、warning)logfile /var/log/redis/redis.log       ##log文件位置,如设置为[logfile ""]空字符串,则redis会将日志输出到标准输出,被写到/dev/null中databases 16     ##开启数据库数量(默认数据库是编号为0的数据库,可使用select 来选择相应数据库)  2. 快照(snapshotting)----主要涉及的是redis的RDB持久化相关的配置
  save * *: 保存快照的频率,第一个*表示多长时间,第二个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照,可设置多个条件。如想禁用RDB持久化策略,不设置任何save指令即以,或设置[save ""]
123456789##########################  SNAPSHOTTING  #############################save 900 1           ##每15分钟且至少有1个key改变,就触发一次持久化save 300 10          ##每5分钟且至少有10个key改变,就触发一次持久化save 60 10000        ##每60秒至少有10000个key改变,就触发一次持久化stop-writes-on-bgsave-error yes        ##redis持久化数据到磁盘时如出现失败,默认redis会停止接受所有的写请求rdbcompression yes              ##是否使用压缩rdbchecksum yes                ##是否使用CRC64算法来进行数据校验dbfilename dump.rdb           ##设置数据快照文件名(只是文件名,不包括目录)dir /var/lib/redis/           ##设置数据快照的保存目录(这个是目录)  3. 复制(replication)
  ############################### REPLICATION ##########################
  通过slaveof配置项可控制某一个redis作为另一个redis的从服务器,通过指定IP和端口来定位到主redis的位置
1# slaveof    如主redis设置验证密码(使用requirepass设置),则需在从redis的配置中使用masterauth来设置校验密码,否则主redis会拒绝从redis的访问请求
1# masterauth   从redis失去与主redis的连接,或者主从同步正在进行时,redis对外部发来的访问请求的两种处理选择:
  选择1:设置为yes(默认),从redis仍会继续响应客户端的读写请求
  选择2:设置为no,从redis会对客户端的请求返回“SYNC with master in progress”(例外:当客户端发来INFO请求和SLAVEOF请求,从redis还是会进行处理)
12slave-serve-stale-data yes  slave-read-only yes           ##设置从redis只读  复制同步策略:磁盘或者socket
  新的从redis上线或主redis重新上线时应做数据全同步。需要将一个新的RDB文件dump出来,然后从主redis传到从redis。有两种情况:
  1. 基于硬盘(disk-backed):主redis创建一个新进程dump RDB,之后由父进程(即主进程)增量传给从redis
  2. 基于socket(diskless):主redis创建一个新进程直接dump RDB到从redis的socket,不经过主进程,不经过硬盘
  如基于硬盘,RDB文件创建后,一旦创建完毕,可以同时服务更多从redis;如基于socket,新的从redis加入后,需进行排队(如超出repl-diskless-sync-delay设定时时);当用diskless时,主redis等待repl-diskless-sync-delay设定的秒数后,如无新的从redis加入,就直接传,后来的需排队等待。(默认用disk-based)
123repl-diskless-sync norepl-diskless-sync-delay 5             ##每五秒传输一次(需开启diskless)# repl-ping-slave-period 10             ##设置从redis向主redis发出PING包的周期(默认10秒)  在主从同步时,可能在这些情况下会有超时发生:
  1. 以从redis的角度来看,当有大规模IO传输时。
  2. 以从redis的角度来看,当数据传输或PING时,主redis超时
  3. 以主redis的角度来看,在回复从redis的PING时,从redis超时
  用户可以设置上述超时的时限,不过要确保这个时限比repl-ping-slave-period的值要大,否则每次主redis都会认为从redis超时。
1# repl-timeout 60  设置主从同步时是否禁用TCP_NODELAY。如开启TCP_NODELAY,主redis会使用更少的TCP包和更少的带宽来向从redis传输数据,但可能会增加同步延迟(40ms)。如关闭TCP_NODELAY,那数据同步的延迟时间会降低,但会消耗更多的带宽
1repl-disable-tcp-nodelay no  设置同步队列长度。队列长度(backlog)是主redis中的一个缓冲区,在与从redis断开连接期间,主redis会用这个缓冲区来缓存应该发给从redis的数据。这样,当从redis重新连接上后,就不必重新全量同步数据,只需要同步这部分增量数据即可
1# repl-backlog-size 1mb  设置主redis清理缓冲队列等待的时间长度(设置为0表示永不清理,默认为1个小时)
12# repl-backlog-ttl 3600slave-priority 100   ##设置从redis优先级,编号越小,优先级越高(默认100)  如主redis发现有超过M个从redis的连接延时大于N秒,那么主redis就停止接受外来的写请求
12# min-slaves-to-write 3# min-slaves-max-lag 10  假如有大于等于3个从redis的连接延迟大于10秒,那么主redis就不再接受外部的写请求。上述两个配置中有一个被置为0,则这个特性将被关闭


运维网声明 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-631126-1-1.html 上篇帖子: linux下安装redis,启动,停止,设置密码 下篇帖子: redis配置文件详解(二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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