redis主从集群搭建及容灾部署(哨兵sentinel).doc

上传人:sk****8 文档编号:2329636 上传时间:2019-05-06 格式:DOC 页数:32 大小:61.29KB
下载 相关 举报
redis主从集群搭建及容灾部署(哨兵sentinel).doc_第1页
第1页 / 共32页
redis主从集群搭建及容灾部署(哨兵sentinel).doc_第2页
第2页 / 共32页
redis主从集群搭建及容灾部署(哨兵sentinel).doc_第3页
第3页 / 共32页
redis主从集群搭建及容灾部署(哨兵sentinel).doc_第4页
第4页 / 共32页
redis主从集群搭建及容灾部署(哨兵sentinel).doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、目录1. Redis 安装 .2. Redis 主从结构搭建 .3. Redis 容灾部署(哨兵 sentinel) .4. Redis 常见问题 .5. 参考 .Redis 主从集群搭建及容灾部署(哨兵 sentinel)1.redis 安装1.1. liunx 环境搭建1:发行版:CentOS-6.6 64bit2:内核:2.6.32-504.el6.x86_643:CPU:intel-i7 3.6G:4:内存:2G1.2.下载 redis 服务端1:下载 redis。官网下载 3.0.0 版本,之前 2.几的版本不支持集群模式下载地址:https:/ -zxvf redis-3.0.0-

2、rc2.tar.gz 2.redis 主从结构搭建2.1.搭建 redis master1:节点规划6301:主 6302:从 6303:从mv redis-3.0.0-rc2.tar.gz redis3.0cd /usr/local/redis3.0makemake install26371:哨兵模式节点一 26372:哨兵模式节点二 26373:哨兵模式节点三2:复制配置文件mkdir redis-groupcp redis.conf ./redis-group/redis-6301.confcp redis.conf ./redis-group/redis-6302.confcp red

3、is.conf ./redis-group/redis-6303.conf3:修改配置文件 redis-xxxx.conf#守护进程模式daemonize yes#pid filepidfile /var/run/redis.pid#监听端口port 6301# TCP 接收队列长度,受/proc/sys/net/core/somaxconn 和 tcp_max_syn_backlog这两个内核参数的影响tcp-backlog 511# 一个客户端空闲多少秒后关闭连接(0 代表禁用,永不关闭) timeout 0# 如果非零,则设置 SO_KEEPALIVE 选项来向空闲连接的客户端发送 AC

4、Ktcp-keepalive 60# 指定服务器调试等级# 可能值:# debug (大量信息,对开发 /测试有用)# verbose (很多精简的有用信息,但是不像 debug 等级那么多)# notice (适量的信息,基本上是你生产环境中需要的)# warning (只有很重要/严重的信息会记录下来)loglevel notice# 指明日志文件名logfile “./redis6301.log“# 设置数据库个数databases 16# 会在指定秒数和数据变化次数之后把数据库写到磁盘上# 900 秒(15 分钟)之后,且至少 1 次变更# 300 秒(5 分钟)之后,且至少 10 次

5、变更# 60 秒之后,且至少 10000 次变更save 900 1save 300 10save 60 10000# 默认如果开启 RDB 快照( 至少一条 save 指令)并且最新的后台保存失败,Redis将会停止接受写操作# 这将使用户知道数据没有正确的持久化到硬盘,否则可能没人注意到并且造成一些灾难stop-writes-on-bgsave-error yes# 当导出到 .rdb 数据库时是否用 LZF 压缩字符串对象rdbcompression yes# 版本 5 的 RDB 有一个 CRC64 算法的校验和放在了文件的最后。这将使文件格式更加可靠。rdbchecksum yes#

6、 持久化数据库的文件名dbfilename dump.rdb# 工作目录dir ./# 当 master 服务设置了密码保护时, slav 服务连接 master 的密码masterauth 0234kz9*l# 当一个 slave 失去和 master 的连接,或者同步正在进行中,slave 的行为可以有两种:# 1) 如果 slave-serve-stale-data 设置为 “yes“ (默认值),slave 会继续响应客户端请求,# 可能是正常数据,或者是过时了的数据,也可能是还没获得值的空数据。# 2) 如果 slave-serve-stale-data 设置为 “no“,slave

7、 会回复“正在从 master 同步# ( SYNC with master in progress)“ 来处理各种请求,除了 INFO 和 SLAVEOF 命令。slave-serve-stale-data yes# 你可以配置 salve 实例是否接受写操作。可写的 slave 实例可能对存储临时数据比较有用(因为写入 salve# 的数据在同 master 同步之后将很容易被删除slave-read-only yes# 是否在 slave 套接字发送 SYNC 之后禁用 TCP_NODELAY?# 如果你选择“yes”Redis 将使用更少的 TCP 包和带宽来向 slaves 发送数据

8、。但是这将使数据传输到 slave# 上有延迟,Linux 内核的默认配置会达到 40 毫秒# 如果你选择了 “no“ 数据传输到 salve 的延迟将会减少但要使用更多的带宽repl-disable-tcp-nodelay no# slave 的优先级是一个整数展示在 Redis 的 Info 输出中。如果 master 不再正常工作了,哨兵将用它来# 选择一个 slave 提升=升为 master。# 优先级数字小的 salve 会优先考虑提升为 master,所以例如有三个 slave 优先级分别为 10,100,25 ,# 哨兵将挑选优先级最小数字为 10 的 slave。# 0 作为

9、一个特殊的优先级,标识这个 slave 不能作为 master,所以一个优先级为 0 的 slave 永远不会被# 哨兵挑选提升为 masterslave-priority 100# 密码验证# 警告:因为 Redis 太快了,所以外面的人可以尝试每秒 150k 的密码来试图破解密码。这意味着你需要# 一个高强度的密码,否则破解太容易了requirepass 0234kz9*l # redis 实例最大占用内存,不要用比设置的上限更多的内存。一旦内存使用达到上限,Redis 会根据选定的回收策略(参见:# maxmemmory-policy)删除 keymaxmemory 3gb# 最大内存策

10、略:如果达到内存限制了,Redis 如何选择删除 key。你可以在下面五个行为里选:# volatile-lru - 根据 LRU 算法删除带有过期时间的 key。# allkeys-lru - 根据 LRU 算法删除任何 key。# volatile-random - 根据过期设置来随机删除 key, 具备过期时间的 key。 # allkeys-random - 无差别随机删, 任何一个 key。 # volatile-ttl - 根据最近过期时间来删除(辅以 TTL), 这是对于有过期时间的key # noeviction - 谁也不删,直接在写操作时返回错误。maxmemory-pol

11、icy volatile-lru# 默认情况下,Redis 是异步的把数据导出到磁盘上。这种模式在很多应用里已经足够好,但 Redis 进程# 出问题或断电时可能造成一段时间的写操作丢失(这取决于配置的 save 指令)。# AOF 是一种提供了更可靠的替代持久化模式,例如使用默认的数据写入文件策略(参见后面的配置)# 在遇到像服务器断电或单写情况下 Redis 自身进程出问题但操作系统仍正常运行等突发事件时,Redis# 能只丢失 1 秒的写操作。# AOF 和 RDB 持久化能同时启动并且不会有问题。# 如果 AOF 开启,那么在启动时 Redis 将加载 AOF 文件,它更能保证数据的可

12、靠性。appendonly no# aof 文件名appendfilename “appendonly.aof“# fsync() 系统调用告诉操作系统把数据写到磁盘上,而不是等更多的数据进入输出缓冲区。# 有些操作系统会真的把数据马上刷到磁盘上;有些则会尽快去尝试这么做。# Redis 支持三种不同的模式:# no:不要立刻刷,只有在操作系统需要刷的时候再刷。比较快。# always:每次写操作都立刻写入到 aof 文件。慢,但是最安全。# everysec:每秒写一次。折中方案。 appendfsync everysec# 如果 AOF 的同步策略设置成 “always“ 或者 “everysec“,并且后台的存储进程(后台存储或写入 AOF# 日志)会产生很多磁盘 I/O 开销。某些 Linux 的配置下会使 Redis 因为 fsync()系统调用而阻塞很久。# 注意,目前对这个情况还没有完美修正,甚至不同线程的 fsync() 会阻塞我们同步的 write(2)调用。#

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。