redis--搭建集群

Posted 梁&&鞠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis--搭建集群相关的知识,希望对你有一定的参考价值。

1、linux版本

1、pwd                       
##先查看当前路径,将下载好的redis上传。redis稳定版本为第2位偶数的。
2、/home/bxapp              
 ##当前路径
3、mkdir redis               
##创建redis文件,将文件redis-4.0.11.tar.gz上传至/opt文件夹
4、tar -zxvf redis-4.0.11.tar.gz  
##解压文件夹
5、cd redis-4.0.11/
6、 make && make PREFIX=/usr/local/redis install  
 ##通过make命令进行安装Redis(需要root权限)
7、cd /usr/local/  
8、mkdir -p /usr/local/redis-cluster
9、cd redis-cluster/
10、mkdir 7031 7032 7033 7034 7035 7036    
##数量根据集群数量来定
11、cp opt/redis-4.0.11/redis.conf  usr/local/redis-cluster
12、cp redis.conf 7031
13、编辑对应的redis.conf文件,各个修改项信息如下(详细配置信息见备注)
            1)绑定端口,port 7031
            2)绑定IP,bind 192.168.174.128   (:172.20.105.192)
            3)指定数据存放路径,dir /usr/local/redis-cluster/7031
            4)启动集群模式,cluster-enabled yes
            5)指定集群节点配置文件,cluster-config-file nodes-7031.conf
            7)后台启动,daemonize yes
            8)指定集群节点超时时间,cluster-node-timeout 5000
            9)指定持久化方式,appendonly yes
            10)配置密码        requirepass
14、将7031的redis.conf拷贝到剩下的文件夹,将所有7031节点替换为对应端口号(port,cluster-config-file,dir三个地方)
cp redis.conf /usr/local/redis-cluster/7032 
cp redis.conf /usr/local/redis-cluster/7036

## 与ruby和gem相关的容易出错
15、安装ruby 。如果系统上有ruby,版本号低于2.2.2 请将其卸载。安装高版本ruby。(官网现最高稳定版2.5)
     ruby -v 
     查看ruby版本号
     yum remove ruby 
     卸载ruby
     离线安装ruby较快(在线安装总是失败,我发现百信内网环境问题,linux拉文件总失败):
     ##强烈建议离线安装高版本ruby,高版本自带gem。
     1) 上传文件ruby-2.5.7.tar.gz
     2) tar -zxvf ruby-2.5.7.tar.gz   解压文件
     3) mkdir -p /usr/local/ruby      创建安装目录
     4)./configure --prefix=/usr/local/ruby 配置并制定安装位置
     5)make  && make install   编译与安装 (龟速)
     5) ruby -v     提示/usr/bin/ruby: No such file or directory 
     7)确认情况  /usr/local/ruby/bin/ruby --version
      ## 如果有版本信息,那说明ruby被装到了该目录下,而非系统认为的 /usr/bin/ruby           
     8)建立软连接  ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby              
     9) ruby -v           OK完成
     Ruby 1.9.2版本以后默认已安装Ruby Gem.所以在安装ruby之后,查看gem版本,gem也需要创建软连接
     要是安装gem也出现这种情况[-bash: /usr/bin/gem: No such file or directory]也是同理
     10)ln -s /usr/local/ruby/bin/gem /usr/bin/gem  建立gem软连接
## 如ruby自带gem,不要操作第16步骤     
16、yum install rubygems #如果源无法安装,手动安装 ,最后建立软连接  ln -s   /usr/local/ruby/bin/gem /usr/bin/gem
17、gem install redis  (安装ruby和redis的接口程序 )
     1)错误1:
     ERROR:  Loading command: install (LoadError)
        cannot load such file -- zlib
     ERROR:  While executing gem ... (NoMethodError)
     undefined method `invoke_with_build_args‘ for nil:NilClass
     原因:缺少zlib库依赖
     解决方案:安装zlib依赖

    1)ERROR:  Could not find a valid gem ‘rails‘ (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT: Connection timed out - connect(2) for "s3.amazonaws.com" port 443 (https://api.rubygems.org/latest_specs.4.8.gz)

     解决方案:网上说出现上面的情况需要切换源,现在好用的源是
            sudo gem sources -r https://rubygems.org  ##移除源
            sudo gem sources -a https://rubygems.org  ##添加源
            sudo gem sources -a http://gems.ruby-china.com/  ##
            gem sources -l  查看gem所有源

#启动redis实例
18、cd /usr/local/redis-cluster
19、for((i=1;i<=6;i++)); do /usr/local/redis/bin/redis-server /usr/local/redis-cluster/703$i/redis.conf; done
20、ps -aux | grep redis  查看redis是否运行成功 
21、找到redis-trib.rb文件   一般在redis源码目录src下的redis-trib.rb ,如果不知道  find / -name "redis-trib.rb"
22、进入 /src/bin/  ##好像是在src文件夹下面  
23、
./redis-trib.rb create --replicas 1 127.0.0.1:7031  127.0.0.1:7032  127.0.0.1:7033  127.0.0.1:7034  127.0.0.1:7035  127.0.0.1:7036
24、集群搭建成功测试
 /usr/local/redis/bin/redis-cli -c -h 127.0.0.1 -p 7031  

#redis-trib.rb 程序的命令是 create,表示创建一个新的集群。选项 --replicas 1 表示为集群中的每个主节点创建一个从节点
1其实代表的是一个比例,就是主节点数/从节点数的比例。slot对于Redis集群而言,一个存放数据的地方,对应一个槽。对于每一个Master而言,会存在一个slot的范围,而Slave则没有。在Redis集群中,依然是Master可以读、写,而Slave只读。数据的写入,实际上是分布的存储在slot中。

25、集群重启正常重启即可,单个重启也可,不许再配置信息
26、关闭集群  for((i=1;i<=6;i++)); do /usr/local/redis/bin/redis-cli -c -h 127.0.0.1 -p 703$i shutdown; done  

 

以上是关于redis--搭建集群的主要内容,如果未能解决你的问题,请参考以下文章

基于docker环境搭建redis-cluster集群(多台机器)

如何利用redis来进行分布式集群系统的限流设计

redis搭建集群并用TreeSoft管理

redis集群简单codis搭建

宝塔搭建redis集群

redis 多主多从集群搭建