Redis集群的部署
Redis集群分为主节点Master和从节点Slave,主节点只有1个,而从节点可以有多个,这样从节点和主节点可以进行数据的传输,Redis集群的性能将比单机环境更高,接下来是配置的过程
首先配置Master节点,主节点的配置和之前Redis单机配置完全一样,并不需要额外的其他任何配置
然后配置Slave节点,这里使用一台主节点,一台从节点做演示,Slave节点释放安装过程完全一样,redis.conf配置首先保证和之前的配置参数一样,即daemonize要设置为yes、logfile日志位置正确设置,dir数据目录正确设置,然后在这个基础上继续添加下面的配置:
找到slave-read-only这一项,默认是yes,这里不用修改,是指Slave只能从Master上读数据

然后再找到# slaveof <masterip> <masterport>这个位置,根据提示这里是设置master的ip地址和端口号,slave就是根据这个设置去和master通信的,所以去掉注释设置为:slaveof 192.168.1.14 6379

补充完这些设置,保存并退出redis.conf即可,然后分别手动建立数据目录和日志目录
这时候执行命令 redis-server redis.conf 就可以启动slave的redis服务了,然后使用 redis-cli 就可以进入redis客户端了
然后我们输入: keys * 查看所有存在的key,默认情况下因为我们没有添加任何数据,所以应该返回空,但是之前在主节点我们添加过数据,所以在集群环境下会从master读取数据,这里返回并不是空:

到这里最简单的redis集群就算部署完成了,接下来补充一下安装Sentinel这个工具来监控redis集群,Sentinel就是redis自带的一个组件,我们可以在另外一台服务器上重新安装redis和Sentinel监控节点,这里为了简单就直接使用上面这一个Slave节点继续补充安装Sentinel
在Redis释放安装的目录下,这里是/usr/redis/redis-3.0.7,这下面除了redis.conf之外,还有一个sentinel.conf就是用来配置Sentinel的,执行 vim sentinel.conf 编辑配置文件
首先在某一位置添加配置:daemonize yes,这个配置是默认没有的,仍然表示Sentinel服务后台运行

然后找到sentinel monitor mymaster 127.0.0.1 6379 2这样的一个默认配置,其中mymater是服务名称127.0.0.1要改成master节点IP,我这里就是:sentinel monitor mymaster 192.168.1.14 6379 1 注意最后的2要改成1,这个表示哨兵的队列,如果多个哨兵,那么可以依次往后排,这里是单哨兵,所以必须改为1,否则故障无法转移;默认sentinel不打印日志,所以建议设置一下日志目录,方面观察集群的变动情况,设置比如:logfile "/usr/redis/sentinel.log" 指定一个日志文件位置即可,具体如下图所示:

配置这些,保存并退出sentinel.conf
然后使用命令 redis-sentinel sentinel.conf 启动Sentinel服务,
然后测试服务是否正常,执行命令 redis-cli -h localhost -p 进入监控管理,26379就是Sentinel服务的端口号,在配置文件可以看到

进入管理界面之后,执行: sentinel master mymaster 可以查看master的信息

执行 sentinel slaves mymaster 可以查看slave的信息

到这里,监控服务Sentinel也部署完毕了,生产中可以专门有一台机器用于运行Sentinel和其他redis节点分开
另外可以扩展上面的sentinel配置至多个,来管理多个redis的集群或者主从,只是服务名不再是mymaster而是多个,比如master1,master2....等,非常简单
现在可以简单验证故障转移是否好用,在主节点执行 redis-cli -p shutdown 停止master节点
这时候查看sentinel.log日志可以看到主节点从14转移到15,可以通过上面的命令查看或者在sentinel节点使用命令: redis-cli -p info Sentinel 查看管理信息,这时候就会看到主节点变为15,状态仍然是良好,现在如果再次启动14上面的redis,那么会被sentinel重新加入到管理,只是此时变为从节点了
到这里redis集群故障转移是好用的,下面是常用到的一些命令:
查看本机redis节点的信息: redis-cli -p info Replication 如果端口默认,那么可以省略-p参数,作用和上面sentinel看到的类似
查看远程redis节点信息,比如从主节点查看从节点信息: redis-cli -h info Replication # -h后跟远程ip地址
停止远程主机redis服务: redis-cli -p -h 192.168.1.22 shutdown
连接远程客户端redis命令行: redis-cli -p -h 192.168.1.22 默认端口时-p同样可以省略
Redis集群的部署的更多相关文章
- redis集群安装部署
(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 192.168.1.160:7000 192. ...
- Redis集群模式部署
以下以Linux(CentOS)系统为例 1.1 下载和编译 $ wget http://download.redis.io/releases/redis-4.0.7.tar.gz $ tar xzf ...
- Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)
一.应用场景介绍 本文主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联网的Linux环境和脱机的Linux环境下是如何安装的.因为大多数时候,公司的生产环境是在内网环境下,无外网 ...
- keepalived+nginx+tomcat+redis集群环境部署
1.所需软件.jar包.配置文件下载:http://pan.baidu.com/s/1dFgntst 2.环境说明: centos6.5 64位 主节点:192.168.40.121 副节点:192 ...
- 使用Docker构建redis集群--最靠谱的版本
1集群结构说明 集群中有三个主节点,三个从节点,一共六个结点.因此要构建六个redis的docker容器.在宿主机中将这六个独立的redis结点关联成一个redis集群.需要用到官方提供的ruby脚本 ...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- Bash实践:抽样检测数据迁移至Redis集群后的数据一致性
熟悉了一段时间的Bash编程,因此借此任务操作一把bash编程,主要涉及到Redis单节点与Redis集群的操作 1. 任务背景 近日有个任务需要将历史的Redis(主从节点)中的数据迁移至Redis ...
- Redis集群的离线安装以及原理理解
一.本文主要是记录一下Redis集群在linux系统下离线的安装步骤,毕竟在生产环境下一般都是无法联网的,Redis的集群的Ruby环境安装过程还是很麻烦的,涉及到很多的依赖的安装,所以写了一个文章来 ...
- Redis集群方案(来自网络)
参考: https://www.zhihu.com/question/21419897 http://www.cnblogs.com/haoxinyue/p/redis.html 为什么集群? 通常, ...
随机推荐
- php打印数组 --- 打印出漂亮格式的数组
htm的<pre>标签,能非常标准的显示数组格式 echo "<pre>";print_r($arr);echo "<pre>&quo ...
- Nginx中的rewrite指令
转自:http://www.76ku.cn/articles/archives/317 rewite.在server块下,会优先执行rewrite部分,然后才会去匹配location块server中的 ...
- Python之扩展包安装
读者朋友,在比较新的版本(Python 2 >=2.7.9 or Python 3 >=3.4)中,pip或者easy_install 扩展包命令已经默认安装(可查看 你的安装目录\p ...
- PHP缓存机制Output Control详解
开启OB缓存的方式有如下两种: 1. php.ini中开启 output_buffering = 4096 启用了此指令,那么每个PHP脚本都相当于一开始就调用了ob_start()函数,PHP5.5 ...
- AlwaysOn可用性组功能测试(一)--AlwaysOn故障转移测试
具体测试环境请参考: AlwaysOn可用性组测试环境安装与配置(一)--SQL群集环境搭建 AlwaysOn可用性组测试环境安装与配置(二)--AlwaysOn配置(界面与T-SQL) 一. Alw ...
- POJ 1496 Word Index
组合数学....和上一题是一样的.... Word Index Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4303 Acce ...
- block 块函数
定义模块函数: <?php function smarty_block_text($args,$content,$smarty,$a) { $color=$args["color&qu ...
- 【C语言入门教程】3.1 程序的 3 种基本结构
程序设计是一个问题求解的过程,解决问题的步骤可看作是程序的控制结构.简单地说,程序的运行过程就是数据输入.数据处理.数据输出 3 个步骤.其中,数据处理过程是否快捷和准确,主要依赖于程序控制结构的设计 ...
- DP~青蛙过河(hrbust1186)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxoAAAKlCAYAAABMq5pGAAAgAElEQVR4nOzdf4xl53nY9/mrQP8r+k
- iOS 不规则的ImageView
http://blog.csdn.net/kevinpake/article/details/41205715 我们在做iOS开发的时候,往往需要实现不规则形状的头像,如: 那如何去实现? 通常图片都 ...