今天好好讲一下redis集群的搭建方法、遇到问题和解决方法。
首先就是下载安装redis,网上流传两种方式:
1.使用下列命令(不推荐使用这种方式):
sudo apt-get update
sudo apt-get install redis-server
启动 Redis
./redis-server
查看 redis 是否启动?
./redis-cli
以上命令将打开以下终端:
redis 127.0.0.1:6379>
127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。
redis 127.0.0.1:6379> ping
PONG
以上说明我们已经成功安装了redis。
2.直接下载redis安装包到Linux目录下,下载地址(http://download.redis.io/releases/redis-4.0.2.tar.gz);或者使用官方给出方式,用Linux命令下载tar文件:wget http://download.redis.io/releases/redis-4.0.2.tar.gz
解压文件命令:tar -xvf redis-4.0.2.tar.gz
解压后,进入redis文件夹下:
cd redis-4.0.2
然后执行make命令。
之后测试一下,先开启redis-server:
./src/redis-server redis.conf
然后执行
./src/redis-cli
redis> set foo bar
OK
redis> get foo
“bar”
至此,redis已经成功安装。
下面便是redis集群的实现方式。
首先尊重参考博文的版权,给出我参考的博文地址:
http://www.cnblogs.com/cndota/p/6113921.html
http://liubao0312.blog.51cto.com/2213529/1939310
http://www.cnblogs.com/wuxl360/p/5920330.html
接下来是我根据自己的实际情况的解决过程。
首先在/root路径下创建redis-cluster文件夹,在/root/redis-cluster文件夹下创建六个文件夹(7001、7002、7003、7004、7005、7006),然后将redis整个文件夹包括所有文件和文件夹都分别复制到六个文件夹中,每一个文件夹最后都将开启一个redis-server,即最终会有6个redis-server,如下图。
接下来对每个文件夹下的/redis/redis.conf配置文件进行相应修改,比如7001文件夹:
port 6480(端口号)
cluster-enabled yes
daemonize yes
pidfile /var/run/redis_6480.pid
注意:可以先查看端口号是否已经被占用,使用命令 netstat -ano|grep 6480,没有输出即没有被占用。
对另外5个文件夹的redis.conf也进行类似更改,只是端口号不同就可以。
接下来打开6个文件夹下的redis-server,命令:
到这里,6个准备进行集群的redis已经成功打开。
接下来安装配置redis-trib.rb所需的环境ruby。
安装ruby
sudo apt install ruby
成功。
然而,sudo apt install rubygems这个我却下载不了,无奈换一种方式:
– 安装rubygem redis依赖 —
wget http://rubygems.org/downloads/redis-3.3.0.gem
gem install -l redis-3.3.0.gem
最后安装ruby和redis的接口程序
gem install redis
接着,将redis-trib.rb复制到/root/redis-cluster目录下:
运行命令建立redis集群:./redis-trib.rb create –replicas 1 120.77.213.58:6480 120.77.213.58:6481 120.77.213.58:6482 120.77.213.58:6483 120.77.213.58:6484 120.77.213.58:6485
注意:IP地址和redis端口号请改为自己的。说明:redis集群至少需要3个主节点,每个主节点有一个从节点总共6个节点,replicas指定为1表示每个主节点有一个从节点
这里可以测试一下集群完整性:
集群完整性是指所有的槽都分配到了存活的主节点上,只要16384个槽中有一个没有分配给节点则表示集群不完整;
可以使用redis-trib.rb check命令检测之前创建的两个集群是否成功,check命令只需要给出集群中任意一个节点地址就可以完成整个集群的检查工作;
最后,我们打开任意一个redis-cli客户端测试一下集群是否成功: