redis cluster集群搭建与深入分析(1)
2017-10-16 21:52
459 查看
对于之前所讲的master+slave进行读写分离同时通过sentinel集群保障高可用的架构,对于一般的数据量系统已经足够。但是对于数据量庞大的T级别的数据,单master可能就无法满足横向扩展的场景。所以redis cluster支持多master+slave架构,支持读写分离和主备切换,多个master支持分片hash slot分布式存储数据
redis cluster的重要配置
在3台机器上启动6个redis实例
对于redis cluster集群,要求至少3个master,从而能够组成一个健壮的分布式的集群,每个master都建议至少给一个slave,3个master,3个slave,所以建议在正式环境下,能够部署6台机器去搭建redis cluster集群,最少的情况是有3台机器,此时需要master和对应的slave不再同一台机器
我们模拟7001-7006端口号来部署6个redis节点,每台机器部署两个节点:
在对应的每台机器下的/etc/init.d中,放2个对应端口号的启动脚本,分别为: redis_7001, redis_7002…需要注意的是每个启动脚本内,都一定要修改对应的端口号
我们需要安装官方提供的redis-trib.rb来完成集群的管理:
将redis-trib.rb配置到环境变量:
执行如下命令:
replicas表示每个master对应的slave节点数量,后续为所有节点服务地址。成功执行后会自动将所有节点配置成集群架构模式,会自动有以下特点:
读写分离、master-slave高可用主备切换、横向master数据分片
可以通过以下命令来核查:
之前我们所搭建的一主多从架构模式,是为来水平扩展,但是基于redis cluster本身的master就可以进行横向扩展,所以我们使用redis cluster架构模式,读写都在master即可,对应的slave节点主要是进行热备切换。并且,redis cluster默认是没有开启在slave节点上的读操作,需要执行readonly命令来开启,此外,jedis也会将请求都发送至master,需要重新封装或者修改源码来达到基于redis cluster的读写分离实现,所以也没有必要在redis cluster进行读写分离。
redis cluster的重要配置
cluster-enabled <yes/no> cluster-config-file <filename>:指定一个文件,供cluster模式下的redis实例将集群状态保存在起来,包括集群中其他机器的信息,比如节点的上线和下线,故障转移,这些不是我们去维护,提供一个文件地址,让redis自己去维护 cluster-node-timeout <milliseconds>:节点存活超时时长,超过一定时长,认为节点宕机,master宕机的话就会触发主备切换,slave宕机就不会提供服务
在3台机器上启动6个redis实例
对于redis cluster集群,要求至少3个master,从而能够组成一个健壮的分布式的集群,每个master都建议至少给一个slave,3个master,3个slave,所以建议在正式环境下,能够部署6台机器去搭建redis cluster集群,最少的情况是有3台机器,此时需要master和对应的slave不再同一台机器
我们模拟7001-7006端口号来部署6个redis节点,每台机器部署两个节点:
mkdir -p /etc/redis-cluster 存放cluster-config-file信息 mkdir -p /var/log/redis 存放redis.conf配置信息 mkdir -p /var/redis/7001 存放redis的持久化文件 配置文件中的改动: port 7001 cluster-enabled yes cluster-config-file /etc/redis-cluster/node-7001.conf cluster-node-timeout 15000 daemonize yes pidfile /var/run/redis_7001.pid dir /var/redis/7001 logfile /var/log/redis/7001.log bind 192.168.1.107 appendonly yes
在对应的每台机器下的/etc/init.d中,放2个对应端口号的启动脚本,分别为: redis_7001, redis_7002…需要注意的是每个启动脚本内,都一定要修改对应的端口号
我们需要安装官方提供的redis-trib.rb来完成集群的管理:
yum install -y ruby yum install -y rubygems gem install redis 但是上述这种方式安装的ruby版本比较低,最后会导致无法成功安装,所以可以采取下述方式: wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz tar -zxvf ruby-2.3.1.tar.gz ./configure -prefix=/usr/local/ruby make && make install cd /usr/local/ruby cp bin/ruby /usr/local/bin cp bin/gem /usr/local/bin cd /usr/local wget http://rubygems.org/downloads/redis-3.3.0.gem gem install -l ./redis-3.3.0.gem gem list --check redis gem 执行gem install -l ./redis-3.3.0.gem可能会出现以下错误: ERROR: Loading command: install (LoadError) cannot load such file -- zlib ERROR: While executing gem ... (NoMethodError) undefined method `invoke_with_build_args' for nil:NilClass 解决方法: 进入ruby源码文件夹 安装ruby自身提供的zlib包 #cd ext/zlib #ruby ./extconf.rb #make #make install #cd ext/openssl #ruby ./extconf.rb #make #make install 最后再执行 cd /usr/local gem install -l ./redis-3.3.0.gem 即可成功安装 通过gem list可以查看到redis
将redis-trib.rb配置到环境变量:
cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin
执行如下命令:
redis-trib.rb create --replicas 1 192.168.1.107:7001 192.168.1.107:7002 192.168.1.104:7003 192.168.1.104:7004 192.168.1.105:7005 192.168.1.105:7006
replicas表示每个master对应的slave节点数量,后续为所有节点服务地址。成功执行后会自动将所有节点配置成集群架构模式,会自动有以下特点:
读写分离、master-slave高可用主备切换、横向master数据分片
可以通过以下命令来核查:
redis-trib.rb check 192.168.31.187:7001
之前我们所搭建的一主多从架构模式,是为来水平扩展,但是基于redis cluster本身的master就可以进行横向扩展,所以我们使用redis cluster架构模式,读写都在master即可,对应的slave节点主要是进行热备切换。并且,redis cluster默认是没有开启在slave节点上的读操作,需要执行readonly命令来开启,此外,jedis也会将请求都发送至master,需要重新封装或者修改源码来达到基于redis cluster的读写分离实现,所以也没有必要在redis cluster进行读写分离。
相关文章推荐
- 深入分析redis cluster 集群
- 深入分析redis cluster 集群安装配置详解
- 深入分析redis cluster 集群安装配置详解
- 深入分析redis cluster 集群安装配置详解
- Redis Cluster集群的搭建与实践
- etcd 集群搭建及常用场景分析
- 搭建高可用mongodb集群(三)—— 深入副本集内部机制
- redis cluster集群的源码分析(2)
- Storm集群搭建的错误分析
- 搭建redis cluster集群,JedisCluster带密码访问【解决当中各种坑】!
- 搭建高可用mongodb集群(三)—— 深入副本集内部机制
- redis cluster 集群搭建步骤和注意事项
- redis集群环境的搭建和错误分析
- Zookeeper,SolrCloud,Redis Cluster三种集群(伪集群)的搭建
- redis集群搭建及分析
- Redis Cluster集群的搭建与实践
- centos7搭建ELK Cluster集群日志分析平台(一):Elasticsearch
- Zookeeper集群搭建步骤及相关知识点深入了解
- Redis Cluster高可用(HA)集群环境搭建详细步骤
- 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群