redis4.0.x集群创建及验证
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
redis4.0.x集群搭建
一.集群搭建前提环境-ruby
因为redis集群环境基于ruby,所以需要先安装ruby运行环境。
采用rvm来安装或者升级ruby,因为有些服务器已经有了ruby,比如我买的阿里云好几台都是ruby2.0,你在安装redis集群时,执行gem install redis 安装接口命令就会报错:
redis需要Ruby版本> = 2.2.2
告诉你最起码需要2.2.2的版本,因为现在redis4.0.x比较多,2.0版本低了,redis3.0貌似不会有这个问题。
---------------------------------------------------
1.安装RVM:(以下每一行都是一条命令)
gpg2 --keyserver hkp:// --recv-keys D39DC0E3
curl -L get.rvm.io | bash -s stable
网速低的话装起来稍微慢点,装完后执行find进行查找,找到标红的rvm。
find / -name rvm -print
/ usr / local / rvm
/ usr / local / rvm / src / rvm
/usr/local/rvm/src/rvm/bin/rvm
/usr/local/rvm/src/rvm/lib/rvm
/usr/local/rvm / src / rvm / scripts / rvm
/ usr / local / rvm / bin / rvm
/ usr / local / rvm / lib / rvm
/ usr / local / rvm / scripts / rvm
然后执行source命令:
source /usr/local/rvm/scripts/rvm
2.查看RVM库中已知的ruby版本
rvm list known
[ruby-] 1.8.6 [-p420]
[ruby-] 1.8.7 [-head]#在头上发布的安全性
[ruby-] 1.9.1 [-p431]
[ruby-] 1.9.2 [-p330 ]
[ruby-] 1.9.3 [-p551]
[ruby-] 2.0.0 [-p648]
[ruby-] 2.1 [.10]
[ruby-] 2.2 [.6]
[ruby-] 2.3 [.3]
[ruby-] 2.4 [.0]
3.安装一个版本
rvm install 2.3.3
4.安装完成后,使用这个版本并设置默认版本。rvm use 2.3.3 --default
5.卸载目前的2.0版本(没有就不用管)
rvm remove 2.0.0
6.查看是不是安装的版本
ruby--version或ruby -v
7.然后安装redis接口
gem install redis
获取:redis-4.0.0.gem(100%)
.....
....
成功安装redis-4.0.0 redis-4.0.0什么什么的....
二.搭建redis集群
redis集群有投票形式的容错机制,所以要超过半数投票来确定某个节点是否挂掉了,辣么最少就需要3个节点(2个节点投什么票对吧?),而一般一个主节点需要有从节点,达到高可用的目的,辣么redis最少就需要6个节点来集群。
假设有6台服务器搭建redis集群,但资源欠缺,就在一台服务器上创建6个redis 实例来搭建一套伪集群,真实环境操作反而比伪集群更简单,所以会搭建伪集群就没有问题。
假设搭建的6台端口分别为:7001,7002,7003,7004,7005,7006。
以我的阿里云服务器为例:
1.将之前跑的redis单例停掉
redis-cli 命令进入,然后shutdown save 关闭。
ps -ef|grep redis 验证是否已关闭。
2.创建redis-cluster目录作为集群目录
找到之前安装redis的目录,我的是/usr/local,创建redis-cluster目录,将之前装过的redis 复制一份到redis-cluster目录中去并重命名为redis01。
cd /usr/local
mkdir redis-cluster
cp redis redis-cluster/redis01
3.编辑配置文件并复制出其它5个节点
进入redis01,编辑redis.conf
vim redis01/redis.conf
修改以下一些参数:
# 端口号,redis01的改为7001.
port 7001
# 绑定IP,这是个大坑很容易误解,这里不是指绑定能访问redis服务器的外部服务器IP,而是指绑定本机可以接受访问的IP。我的阿里云ifconfig查看的IP就是172.16.252.212.用阿里云的公网IP绑定后启动都不行,原因目前未知。配置成0.0.0.0也是可以的,而且可以用jedis通过外网访问,前提是后面出现的问题都解决了,再回头改成0.0.0.0试试。bind 172.16.252.212
# 密码也是个大坑,不设置还好,设置了对后面创建集群有很大影响,有的人不设置,但我认为真实环境为了安全考虑应该要设置的。
requirepass 123456
# 是否开启后台运行,是。
daemonize yes
# 存放redis数据的目录,比如快照、conf文件、aof日志等等,这个data目录如果没有自己创建,路径对应上就行。
dir /usr/local/redis-cluster/redis01/data
# 后台进程运行需要指定一个pid,虽然有默认的,但集群我们自己指定一个,自己命名。pidfile /var/run/redis_7001.pid
# 日志文件路径
logfile /usr/local/redis-cluster/redis01/redis.log
# 开启集群
cluster-enabled yes
# 集群的配置,配置文件首次启动自动生成,会放在上面指定的data目录里,自行验证。cluster-config-file nodes_7001.conf