本章内容是我看其他大佬的文章,去一步一步实现 并 归总结纳的
(注:本文章的7001-7006端口 后面 实际实现的是9501-9506端口)
两项 一、redis的安装 二、模拟redis的集群(具体集群是什么,何作用 自行百度)
1.下载redis
wget http://download.redis.io/releases/redis-3.0.0.tar.gz
2.移动 redis安装包 到指定目录,也可以不移动,但是一般安装有一个固定位置比较好管理
mv /redis-3.0.0.tar.gz(被移动的所在位置) /usr/local(要移动到的位置)
3.解压安装包
tar -zxvf redis-3.0.0.tar.gz
4.进入到解压好的redis目录,检查是否存在 Makefile 文件,存在则执行make 编译redis源码
5.安装编译后的redis代码到指定目录,一般存放于/usr/local下的redis目录,指令如下
make install PREFIX=/usr/local/redis
6.查看/user/local目录,可以发现多了一个redis目录,查看redis目录下的bin目录
7.至此,可以启动redis了,默认的启动模式为前端启动,指令如下
./redis-server
8.前端启动,如何这个启动窗口关闭,redis的服务也会停止,所以改成后台启动redis会比较好
第一步,先将redis解压文件中的redis.conf文件复制到当前目录下(注意:是步骤3的解压文件)
cp ../../redis-3.0.0/redis.conf .
..代表上一级, .代表当前目录
第二步,修改redis.conf文件,将daemonize no -> daemonize yes,这样便将启动方式修改为后台启动了
9.启动redis -> 后台启动
./redis-server redis.conf
10.连接redis
./redis-cli
二、关于redis集群的搭建
1.进入到/usr/local目录下,mkdir redis-cluster 创建目录用于存放集群节点
2.把redis目录下的bin目录下的所有文件复制到/usr/local/redis-cluster/redis01目录下,不用担心这里没有redis01目录,会自动创建的。操作命令如下(注意当前所在路径)
3.删除redis01目录下的快照文件dump.rdb,并且修改该目录下的redis.cnf文件,具体修改两处地方:一是端口号修改为7001,二是开启集群创建模式,打开注释即可。分别如下图所示:
4.将redis-cluster/redis01文件复制5份到redis-cluster目录下(redis02-redis06),创建6个redis实例,模拟Redis集群的6个节点。然后将其余5个文件下的redis.conf里面的端口号分别修改为7002-7006。分别如下图所示:
创建redis02-06目录
5.分别修改redis.conf文件端口号为7002-7006(只需要修改端口,因为cp过来的 cluster-enabled已经改为yes)
6.接着启动所有redis节点,由于一个一个启动太麻烦了,所以在这里创建一个批量启动redis节点的脚本文件,命令为start-all.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 ..
7.创建好启动脚本文件之后,需要修改该脚本的权限,使之能够执行 chmod +x start-all.sh
8.执行start-all.sh脚本,启动6个redis节点
9.其实以上步骤也就一句话的事情:创建6个redis实例(6个节点)并启动。
要搭建集群的话,需要使用一个工具(脚本文件),这个工具在redis解压文件的源代码里。因为这个工具是一个ruby脚本文件,所以这个工具的运行需要ruby的运行环境,就相当于java语言的运行需要在jvm上。所以需要安装ruby,指令如下:
apt-get install rubygems -y
然后需要把ruby相关的包安装到服务器,我这里用的是redis-3.0.0.gem,大家需要注意的是:redis的版本和ruby包的版本最好保持一致。
将Ruby包安装到服务器:需要先下载再安装,如图
安装命令
gem install redis-3.0.0.gem
10.上一步中已经把ruby工具所需要的运行环境和ruby包安装好了,接下来需要把这个ruby脚本工具复制到usr/local/redis-cluster目录下。那么这个ruby脚本工具在哪里呢?之前提到过,在redis解压文件的源代码里,即redis/src目录下的redis-trib.rb文件。
11.然后使用该脚本文件搭建集群,指令如下:(如出现下面报错 运行:gem install redis 是因为缺少redis依赖)
我们再试一次。 中途需要手动输入 yes
OK成功创建集群 (我这里使用的是9501-9506的端口,记得 vim /etc/ssh/sshd_config 开放下端口)
修改完后,记得 /etc/init.d/ssh restart 重启ssh服务 或者重启虚拟机 reboot
12.至此,Redi集群搭建成功!大家注意最后一段文字,显示了每个节点所分配的slots(哈希槽),这里总共6个节点,其中3个是从节点,所以3个主节点分别映射了0-5460、5461-10922、10933-16383solts。
尝试连接集群节点,连接任意一个即可:
redis01/redis-cli -p 9501 -c
注意:一定要加上-c,不然节点之间是无法自动跳转的!如下图可以看到,存储的数据(key-value)是均匀分配到不同的节点的:
1.查看当前集群信息
cluster info
2.查看集群里有多少个节点
cluster nodes