单机部署redis集群(4.0.14版本)

redis 4版本以上的redis安装和redis 3版本有较大差别,由于在redis安装的过程当中遇到一些问题,故在此记录下来,给大家一点安装的参考。

redis的安装有以下步骤:

1、下载redis安装包,进行解压编译。
2、对编译好的redis复制多份,每份即一个节点,修改每个节点的redis.conf文件。包括端口、绑定ip、打开集群、个性化的节点配置文件替换等(一般使用默认的节点配置文件)。
3、分别依次启动多个节点,利用redis自带的./redis-trib.rb进行节点创建,需要注意的是这个要依赖于ruby。
4、查看集群是否创建成功。

1、下载redis安装包,进行解压编译

(1)、下载redis linux1.0.14的安装包(redis的下载页面)

https://redis.io/download

(2)、上传到指定目录进行解压

上传至此目录(看安装者需要)

/usr/local/redis

(3)、解压目录、编译

//解压
tar -zxvf redis-4.0.8.tar.gz

cd redis-4.0.14
//编译
make
//make test
make test
//安装
make install

二、对编译好的redis复制多份,每份即一个节点,修改每个节点的redis.conf文件。包括端口、绑定ip、打开集群、个性化的节点配置文件替换等(一般使用默认的节点配置文件)

(1)、创建要部署结点的文件夹

mkdir -p /usr/local/cluster
mkdir -p /usr/local/cluster/7000
mkdir -p /usr/local/cluster/7001
mkdir -p /usr/local/cluster/7002
mkdir -p /usr/local/cluster/7003
mkdir -p /usr/local/cluster/7004
mkdir -p /usr/local/cluster/7005
mkdir -p /usr/local/cluster/7006
mkdir -p /usr/local/cluster/7007

(2)、复制编译后的文件到指定目录

cp -rf /usr/local/redis/  /usr/local/cluster/7000/
cp -rf /usr/local/redis/  /usr/local/cluster/7001/
cp -rf //usr/local/redis/  /usr/local/cluster/7002/
cp -rf /usr/local/redis/  /usr/local/cluster/7003/
cp -rf /usr/local/redis/  /usr/local/cluster/7004/
cp -rf /usr/local/redis/  /usr/local/cluster/7005/
cp -rf //usr/local/redis/  /usr/local/cluster/7006/
cp -rf /usr/local/redis/  /usr/local/cluster/7007/

(3)、进入到集群目录,修改conf文件

进入到指定目录
cd /usr/local/cluster/7000/redis-4.0.14

修改redis.conf,将修改下面指定参数配置(可以使用 / 搜索参数名称,
[由于port单词比较多搜索端口的时候搜索]port 6379)
vi  redis.conf

将下面参数修改为指定的值(有部分是需要新增,在redis.conf被注释掉了)

daemonize yes 
port 7000 
appendonly yes 
cluster-enabled yes 
cluster-config-file nodes.conf 
cluster-node-timeout 5000
#(192.168.25.128)是我自己的ip,如果不添加这个url,则通过代码无法连接
bind 192.168.25.128 127.0.0.1

(4)将7000集群的redis.conf的文件覆盖7001,7002,…,7007的conf配置文件

cp /usr/local/cluster/7000/redis-4.0.14/redis.conf  /usr/local/cluster/7001/redis-4.0.14/
cp /usr/local/cluster/7000/redis-4.0.14/redis.conf  /usr/local/cluster/7002/redis-4.0.14/
cp /usr/local/cluster/7000/redis-4.0.14/redis.conf  /usr/local/cluster/7003/redis-4.0.14/
cp /usr/local/cluster/7000/redis-4.0.14/redis.conf  /usr/local/cluster/7004/redis-4.0.14/
cp /usr/local/cluster/7000/redis-4.0.14/redis.conf  /usr/local/cluster/7005/redis-4.0.14/
cp /usr/local/cluster/7000/redis-4.0.14/redis.conf  /usr/local/cluster/7006/redis-4.0.14/
cp /usr/local/cluster/7000/redis-4.0.14/redis.conf  /usr/local/cluster/7007/redis-4.0.14/

修改7001,7002,…,7007修改对应配置文件redis.conf的端口配置

vi  redis.conf

(5)增加对应地方的配置文件的启动文件

vi /usr/local/cluster/start.sh
cd /usr/local/cluster/7000/redis-4.0.14/src
./redis-server ../redis.conf

cd /usr/local/cluster/7001/redis-4.0.14/src
./redis-server ../redis.conf

cd /usr/local/cluster/7002/redis-4.0.14/src
./redis-server ../redis.conf

cd /usr/local/cluster/7003/redis-4.0.14/src
./redis-server ../redis.conf

cd /usr/local/cluster/7004/redis-4.0.14/src
./redis-server ../redis.conf

cd /usr/local/cluster/7005/redis-4.0.14/src
./redis-server ../redis.conf

cd /usr/local/cluster/7006/redis-4.0.14/src
./redis-server ../redis.conf


cd /usr/local/cluster/7007/redis-4.0.14/src
./redis-server ../redis.conf

同时创建停止节点文件

cd /usr/local/cluster/7000/redis-4.0.14/src
./redis-cli -p 7000 shutdown

cd /usr/local/cluster/7001/redis-4.0.14/src
./redis-cli -p 7001 shutdown

cd /usr/local/cluster/7002/redis-4.0.14/src
./redis-cli -p 7002 shutdown

cd /usr/local/cluster/7003/redis-4.0.14/src
./redis-cli -p 7003 shutdown

cd /usr/local/cluster/7004/redis-4.0.14/src
./redis-cli -p 7004 shutdown

cd /usr/local/cluster/7005/redis-4.0.14/src
./redis-cli -p 7005 shutdown

cd /usr/local/cluster/7006/redis-4.0.14/src
./redis-cli -p 7006 shutdown


cd /usr/local/cluster/7007/redis-4.0.14/src
./redis-cli -p 7007 shutdown

修改 启动文件的权限配置

chmod 777 start.sh
//启动所有节点的redis
./start.sh

如果下面启动成功

[root@localhost cluster]# ps -ef | grep redis
root       9758      1  0 09:02 ?        00:00:10 ./redis-server 127.0.0.1:7000 [cluster]
root       9763      1  0 09:02 ?        00:00:07 ./redis-server 127.0.0.1:7001 [cluster]
root       9768      1  0 09:02 ?        00:00:10 ./redis-server 127.0.0.1:7002 [cluster]
root       9773      1  0 09:02 ?        00:00:10 ./redis-server 127.0.0.1:7003 [cluster]
root       9778      1  0 09:02 ?        00:00:09 ./redis-server 127.0.0.1:7004 [cluster]
root       9783      1  0 09:02 ?        00:00:10 ./redis-server 127.0.0.1:7005 [cluster]
root       9785      1  0 09:02 ?        00:00:10 ./redis-server 127.0.0.1:7006 [cluster]
root       9790      1  0 09:02 ?        00:00:10 ./redis-server 127.0.0.1:7007 [cluster]

3、分别依次启动多个节点,利用redis自带的./redis-trib.rb进行节点创建,需要注意的是这个要依赖于ruby

//进入到第一次编译的目录
cd /usr/local/redis/redis-4.0.14/src
//创建集群
./redis-trib.rb create --replicas 1 192.168.25.128:7000 192.168.25.128:7001 192.168.25.128:7002 192.168.25.128:7003 192.168.25.128:7004 192.168.25.128:7005 192.168.25.128:7006 192.168.25.128:7007

4、检查是否启动成功

Creating cluster
Performing hash slots allocation on 8 nodes...
Using 4 masters:
127.0.0.1:7000
127.0.0.1:7002
127.0.0.1:7003
127.0.0.1:7004
Adding replica 127.0.0.1:7006 to 127.0.0.1:7000
Adding replica 127.0.0.1:7007 to 127.0.0.1:7002
Adding replica 127.0.0.1:7001 to 127.0.0.1:7003
Adding replica 127.0.0.1:7005 to 127.0.0.1:7004
Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 741c0bf753e65c8e6deca11b8efb994519303daa 127.0.0.1:7000
slots:0-4095 (4096 slots) master
M: 7c4e1dae5c6ce5660156fb727d36f34fb2c65423 127.0.0.1:7002
slots:4096-8191 (4096 slots) master
M: 3329c221b5f689b1bfe26b5ac6996c4a29dea0b3 127.0.0.1:7003
slots:8192-12287 (4096 slots) master
M: faea5db1781470acf660962414ef4772f6e7c28b 127.0.0.1:7004
slots:12288-16383 (4096 slots) master
S: 727abe639adfdea836c0132e2b61d5a5bdbaf967 127.0.0.1:7005
replicates 3329c221b5f689b1bfe26b5ac6996c4a29dea0b3
S: 5fc6364410bae6b2dfe31c8896658738a39f2d7f 127.0.0.1:7006
replicates faea5db1781470acf660962414ef4772f6e7c28b
S: e76e4989e8bb94aa23302002a1934e8ac90fbcd9 127.0.0.1:7007
replicates 7c4e1dae5c6ce5660156fb727d36f34fb2c65423
S: 97f2f9750fb571c6884ca01aedc5cf74d2e254ea 127.0.0.1:7001
replicates 741c0bf753e65c8e6deca11b8efb994519303daa
Can I set the above configuration? (type 'yes' to accept):

Nodes configuration updated
Assign a different config epoch to each node
Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join.....
Performing Cluster Check (using node 127.0.0.1:7000)
M: 741c0bf753e65c8e6deca11b8efb994519303daa 127.0.0.1:7000
slots:0-4095 (4096 slots) master
1 additional replica(s)
M: faea5db1781470acf660962414ef4772f6e7c28b 127.0.0.1:7004
slots:12288-16383 (4096 slots) master
1 additional replica(s)
M: 3329c221b5f689b1bfe26b5ac6996c4a29dea0b3 127.0.0.1:7003
slots:8192-12287 (4096 slots) master
1 additional replica(s)
S: 5fc6364410bae6b2dfe31c8896658738a39f2d7f 127.0.0.1:7006
slots: (0 slots) slave
replicates faea5db1781470acf660962414ef4772f6e7c28b
S: e76e4989e8bb94aa23302002a1934e8ac90fbcd9 127.0.0.1:7007
slots: (0 slots) slave
replicates 7c4e1dae5c6ce5660156fb727d36f34fb2c65423
S: 97f2f9750fb571c6884ca01aedc5cf74d2e254ea 127.0.0.1:7001
slots: (0 slots) slave
replicates 741c0bf753e65c8e6deca11b8efb994519303daa
S: 727abe639adfdea836c0132e2b61d5a5bdbaf967 127.0.0.1:7005
slots: (0 slots) slave
replicates 3329c221b5f689b1bfe26b5ac6996c4a29dea0b3
M: 7c4e1dae5c6ce5660156fb727d36f34fb2c65423 127.0.0.1:7002
slots:4096-8191 (4096 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
Check for open slots...
Check slots coverage...
[OK] All 16384 slots covered.
//进入redisCluster集群
./redis-cli -p 7000 -c 

//集群信息
cluster info

//.查看集群里有多少个节点
cluster nodes

//set 值
set name '123'

get name

127.0.0.1:7000> get name
-> Redirected to slot [5798] located at 127.0.0.1:7002
"123"

附(在安装过程中可能出现的问题):
在make的时候可能会出现如下错误,这是make出错,执行 make clean 后再执行make

检查redis安装包的目录下有没有redis-server、redis-cli和/usr/local/bin下有没有

没有的话,则把redis的安装包直接删除,在解压一次。

再重新安装一遍。

make[1]:  *** [adlist.o] Error 127

make[1]: Leaving directory '/xx/xx/redis-x.x.x/src'

在 make test 的时候可能会出现如下错误,

You need tcl 8.5 or newer in order to run the Redis test
make: *** [test] Error 1

如果出现上面错误,需要安装tcl

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz  
sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/  
cd  /usr/local/tcl8.6.1/unix/  
sudo ./configure  
sudo make  
sudo make install   

在创建集群的时候可能会遇到下面的问题,
/usr/bin/env: ruby: 没有那个文件或目录
解决方案:# yum install ruby


    ./redis-trib.rb:24:in ‘require’: no such file to load -- rubygems (LoadError) from ./redis-trib.rb:24
    解决方案:# yum install rubygems
 
    /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in ‘gem_original_require': no such file to load -- redis (LoadError) from  /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in ‘require'  from ./redis-trib.rb:25
    解决方案:# gem install redis
 
    redis requires Ruby version >= 2.2.2
    解决方案:
    1).安装curl
        sudo yum install curl
    2). 安装RVM
        curl -L get.rvm.io | bash -s stable 
    3). 
        source /usr/local/rvm/scripts/rvm
    4). 查看rvm库中已知的ruby版本
        rvm list known
    5). 安装一个ruby版本
        rvm install 2.6.3
    6). 使用一个ruby版本
        rvm use 2.6.3
    7). 设置默认版本
        rvm remove 2.0.0
    8). 卸载一个已知版本
        ruby --version
    9). 再安装redis就可以了

如果已经创建节点,需要删除需要删除以下文件

appendonly.aof
nodes.conf
dump.rd

你可能感兴趣的:(redis,redis,redis集群,单机部署,4.0.14)