您的位置:首页 > 数据库 > Redis

手把手教你如何搭建redis集群(非常详细)

2019-03-07 15:10 459 查看

前面我们已经部署好了一个简单版的单机型redis,那么我们要搭建集群的话就要在这个基础上继续深入即可!
创建6个节点(实例)
cd /usr/local/
mkdir redis-cluster
cd redis
cp -r bin …/redis-cluster/redis01
进入redis01命令:cd …/redis-cluster/redis01
在redis01目录中执行命令:rm -f dump.rdb 删除dump.rdb这种rdb形式的存储快照,还有一个是lof形式的,一般都是快照存储,相对于lof性能更好(这里就不解释了,本人也不是很懂,各位感兴趣的可以在网上搜索相关资料)
修改配置文件redis.conf(避免与单机版使用的冲突,分配6个端口号,7001~7006).
vim redis.conf,改完port后再修改# cluster-enabled yes打开这一行,默认是注释掉的,非编辑模式下执行命令/cluster进入快速搜索模式 ,打开前面的注释.
修改完之后回到上一级目录
cd …/
cp -r redis01/ redis02
cp -r redis01/ redis03
cp -r redis01/ redis04
cp -r redis01/ redis05
cp -r redis01/ redis06
同理,修改剩下的5个节点(实例)的端口(7002…7006).
进入对应redis版本的源码包里的src目录(我使用的是redis-3.0.0这个版本)
cd /usr/local/redis-3.0.0/src 执行 ll *.rb命令,我们发现有一个这个文件 redis-trib.rb
将 redis-trib.rb这个脚本拷贝到集群目录,执行
cp *.rb /usr/local/redis-cluster/
复制完之后回到集群目录
cd …/…/redis-cluster
我们发现6个实例,一个一个去启动太麻烦了,所以我们在当前目录下创建一个脚本负责启动.
启动6个实例对象,先创建脚本vim startall.sh,添加以下内容
cd redis01
./redis-server redis.conf
cd …
cd redis02
./redis-server redis.conf
cd …
cd redis03
./redis-server redis.conf
cd …
cd redis04
./redis-server redis.conf
cd …
cd redis05
./redis-server redis.conf
cd …
cd redis06
./redis-server redis.conf
cd …
完成编辑后执行
chmod +x startall.sh(给与脚本授权)
./startall.sh(启动6个实例)
ps aux|grep redis(查看6个节点是否已全部启动)
在当前集群目录中安装redis所需的ruby环境
执行命令:
cd usr/local/redis-cluster/
yum install ruby(在进入集群目录后执行)
yum install rubygems(不按照执行后面集群创建会失败)
在当前redis-cluster目录下执行命令
./redis-trib.rb create --replicas 1 192.168.1.26:7001 192.168.1.26:7002 192.168.1.26:7003 192.168.1.26:7004 192.168.1.26:7005 192.168.1.26:7006
不报错的情况下:再输入一次yes
如果创建失败,进入每一个节点的配置文件redis.conf中查看是否打开bind以及ip是否一样,以及自己使用的当前redis版本情况,如果是低版本的话需要一个.gem文件
低版本需要依赖一个包,当前版本+.gem,假如:redis-3.0.0.gem这个包就是低版本的依赖包,那么执行命令
gem install redis-3.0.0.gem,其实这个包就是一个工具包(低版本的才需要),高版本只要能保证ruby脚本能正常运行即可
我这里提供一个3.0的gem下载链接:链接https://pan.baidu.com/s/1pG8KmpeIclDnDYYPM1lJKQ
提取码:olyo

以上步骤加上单机版的redis搭建,就相当于集群环境搭建好了
赶紧去后端用起来吧!
在虚拟机上启动集群怎么启动?
在任意节点下启动,比如,我在节点1中启动
redis01/redis-cli -h 192.168.1.26 -p 7003 -c

在java后端连接集群的时候,会包movenError,就是因为没有-C,redis计算空间报的错,
关闭集群节点:进入任意一个客户端 redis-cli -p 7001(任意存在的端口) shutdown
创建关闭集群的脚本
vim shutdown.sh
添加以下内容:
redis01/redis-cli -p 7001 shutdown
redis01/redis-cli -p 7002 shutdown
redis01/redis-cli -p 7003 shutdown
redis01/redis-cli -p 7004 shutdown
redis01/redis-cli -p 7005 shutdown
redis01/redis-cli -p 7006 shutdown

chmod +x shutdown.sh(给与脚本授权)

一步步搭建单机版的redis服务:https://blog.csdn.net/yihuaiyan/article/details/88059282

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: