1.删除机器上原有的redis2.8

关闭redis-server

killall -9 redis-server

查找redis文件所在目录

which redis

删除相关文件

rm -rf redis
rm -rf redis-proxy/
rm -rf nutcracker/

删除相关命令

rm -f /usr/local/bin/redis-*

2.下载、安装redis

wget http://download.redis.io/releases/redis-4.0.1.tar.gz
tar xzf redis-4.0.1.tar.gz
mv redis-4.0.1 /usr/local/
cd /usr/local/redis-4.0.1/
make
make test

3.配置节点(新建6个以端口号命名的目录,表示6个节点,3主3从)

cd /usr/local
mkdir cluster
cd cluster/
mkdir 7000
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005

在上面新建的每个目录下新建redis.conf文件,并写入以下内容:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
vim 7000/redis.conf
vim 7001/redis.conf
vim 7002/redis.conf
vim 7003/redis.conf
vim 7004/redis.conf
vim 7005/redis.conf

为了方便使用把redis-server文件复制到/usr/local/cluster目录下

cp /usr/local/redis-4.0.1/src/redis-server  /usr/local/cluster

进入每个节点的目录,并用对应的配置文件启动redis

cd /usr/local/cluster/7000
../redis-server ./redis.conf &

先测试一下是否启动成功过,

/usr/local/redis-4.0.1/src/redis-cli -p 7000

如果能进去redis命令行表示启动成功,再去启动其他端口

cd /usr/local/cluster/7001
../redis-server ./redis.conf &
cd /usr/local/cluster/7002
../redis-server ./redis.conf &
cd /usr/local/cluster/7003
../redis-server ./redis.conf &
cd /usr/local/cluster/7004
../redis-server ./redis.conf &
cd /usr/local/cluster/7005
../redis-server ./redis.conf &

接下来启动cluster

cd /usr/local/redis-4.0.1/src/
./redis-trib.rb create --replicas 1 172.16.180.226:7000 172.16.180.226:7001 172.16.180.226:7002 172.16.180.227:7003 172.16.180.227:7004 172.16.180.227:7005

4.常见错误及解决方法

如果系统上各种依赖比较齐全的话,这时就能启动成功了,通常还可能遇到以下错误

错误1:

root@localhost src]# ./redis-trib.rb create --replicas 1 172.16.180.226:7000 172.16.180.226:7001 172.16.180.226:7002 172.16.180.227:7003 172.16.180.227:7004 172.16.180.227:7005
/usr/bin/env: ruby: No such file or directory

解决方案:

yum install ruby

错误2:

[root@localhost src]# ./redis-trib.rb create --replicas 1 172.16.180.226:7000 172.16.180.226:7001 172.16.180.226:7002 172.16.180.227:7003 172.16.180.227:7004 172.16.180.227:7005
./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
from ./redis-trib.rb:24

解决方案:

yum install rubygems

错误3:

[root@localhost src]# ./redis-trib.rb creat --replicas 1 172.16.180.226:7000 172.16.180.226:7001 172.16.180.226:7002 172.16.180.227:7003 172.16.180.227:7004 172.16.180.227:7005
/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

yum install ruby
yum install rubygems
gem install redis

安装完以上各种依赖之后,再次执行以下命令即可成功启动cluster

./redis-trib.rb create --replicas 1 172.16.180.226:7000 172.16.180.226:7001 172.16.180.226:7002 172.16.180.227:7003 172.16.180.227:7004 172.16.180.227:7005

5.测试cluster集群是否能正常使用

/usr/local/src/redis-cli  -c -h 172.16.180.226 -p 7000

上面的命令如果缺少了“-c”会出现以下错误。

6.编写重启cluster的shell脚本

vim restart-cluster.sh

写入以下内容:

#!/bin/sh
killall -9 redis-server
#删掉以前运行的节点留下的配置信息
find /usr/local/cluster/ -name "appendonly.aof"|xargs rm -f;
find /usr/local/cluster/ -name "nodes.conf"|xargs rm -f;
find /usr/local/cluster/ -name "dump.rdb"|xargs rm -f;
#重新启动redis
cd /usr/local/cluster/7000
../redis-server ./redis.conf &
cd /usr/local/cluster/7001
../redis-server ./redis.conf &
cd /usr/local/cluster/7002
../redis-server ./redis.conf &
cd /usr/local/cluster/7003
../redis-server ./redis.conf &
cd /usr/local/cluster/7004
../redis-server ./redis.conf &
cd /usr/local/cluster/7005
../redis-server ./redis.conf &
cd /usr/local/redis-4.0.1/src/
#重新创建cluster集群
./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

shell文件保存之后需要赋予可执行权限。

chmod +x restart-cluster.sh

使用脚本重启

./restart-cluster.sh

查看是否重启成功

src/redis-cli -c -p 7000

本文参考了以下资料:

http://www.redis.cn/download.html
http://www.redis.cn/topics/cluster-tutorial.html
http://www.oschina.net/question/1259683_2133954

使用redis4.0.1和redis-cluster搭建集群并编写重启shell脚本的更多相关文章

  1. Redis Cluster(集群)的搭建

    一.Redis的下载.安装.启动(单实例) 我们统一将Redis安装在/opt目录下,执行命令如下: $ cd /opt $ wget http://download.redis.io/release ...

  2. 超详细的 Redis Cluster 官方集群搭建指南

    今天从 0 开始搭建 Redis Cluster 官方集群,解决搭建过程中遇到的问题,超详细. 安装ruby环境 因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,rub ...

  3. redis4.0.13主从、哨兵、集群3种模式的 Server端搭建、启动、验证

    本文使用的是redis-4.0.13.tar.gz版本. 两个centos7系统虚拟机:192.168.10.140.192.168.10.150 redis各版本下载地址:http://downlo ...

  4. Redis Cluster 官方集群搭建指南

    安装ruby环境因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,ruby安装需要指定openssl. 安装openssl $ wget https://www.open ...

  5. Redis Cluster 分布式集群(下)

    Redis Cluster 搭建(工具) 环境准备 节点 IP 端口 节点① 172.16.1.121 6379,6380 节点② 172.16.1.122 6379,6380 节点③ 172.16. ...

  6. Redis Cluster 分布式集群(上)

    Redis Cluster 介绍 Redis 集群是一个可以在多个Redis节点之间进行数据共享的设施(installation): Redis 集群不支持那些需要同时处理多个键的 Redis 命令, ...

  7. redis 模拟搭建集群

    一.本文是在一台 linux 系统上,模拟搭建 redis 集群.3 台主机,3 台从机. 二.redis 安装步骤 http://www.cnblogs.com/fangwu/p/8602357.h ...

  8. Redis Cluster 伪集群的搭建

    简介 为何要搭建Redis集群?Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB ...

  9. Redis(1.13)Redis cluster 分布式集群手动配置

    [1]试验环境 结构图如下: (这里试验没有那么多机器,就用3台机器搭建试验) redis1是redis集群的一个节点A,上面运行了两个redis实例,7001 7004 redis2是redis集群 ...

随机推荐

  1. int类型转换byte类型

    计算机中,int类型占用4个字节,byte类型占用1个字节: 当int类型强转为byte类型时,计算机会截取最后的八位(1个字节): 由于计算机存储数据时,都是以补码的形式进行存储. 然而,我们通常看 ...

  2. hdu 2612

    Find a way Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  3. 解决:oracle+myBatis ResultMap 类型为 map 时返回结果中存在 timestamp 时使用 jackson 转 json 报错

    前言:最近在做一个通用查询单表的组件,所以 sql 的写法就是 select *,然后 resultType="map" ,然后使用 jackson @ResponseBody 返 ...

  4. curl 封装类

    <?php /** * author: zbseoag * QQ: 617937424 用法: $content = Curl::instance()->url($url)->get ...

  5. Retrofit+RxJava(2)-基本使用

    首先是抽象的基类 public abstract class BaseApi { public static final String API_SERVER = "服务器地址" p ...

  6. 功能强大的StickyHeaderListView:标题渐变、吸附悬停、筛选分类、动态头部

    StickyHeaderListView 主要是通过 ListView 添加头部实现,将复杂的头部分解为若干部分,如下图:Header 1(广告位).Header 2(频道位).Header 3(运营 ...

  7. hornor8改user模式为debug模式

    在学习Android软件安全的过程中,经常要用到Android的动态调试.但是呢,一般的Android应用在发布的时候都是发布版的不能直接被调试,为了能使Android应用能够支持调试就需要对Andr ...

  8. java基础(四) java运算顺序的深入解析

    1. 从左往右的计算顺序   与C/C++不同的是,在Java中,表达式的计算与结果是确定的,不受硬件与环境的影响.如: int i = 5; int j = (i++) + (i++) +(i++) ...

  9. Promise 初步

    在JavaScript的世界中,所有代码都是单线程执行的. 由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行.异步执行可以用回调函数实现: function ca ...

  10. gitlab的仓库迁移到新的gitlab

    1.下载原有gitlab源码 git clone http://gitlab.**.com/projectName gitlab地址替换成为新gitlab地址 git remote set-url o ...