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--搭建集群的主要内容,如果未能解决你的问题,请参考以下文章