下载与解压

[root@localhost ~]# cd /usr/temp/

[root@localhost temp]# wget http://download.redis.io/releases/redis-3.2.4.tar.gz

[root@localhost temp]# tar -zxvf redis-3.2.4.tar.gz

编译与安装

[root@localhost temp]# cd redis-3.2.4

[root@localhost temp]# make && make install

以上只是演示了redis的下载安装等操作,可以忽略,注意以下用的版本是之前的redis3.0.2

将src目录下的 redis-trib.rb 复制到 /usr/local/bin 目录下

[root@localhost src]# cp redis-trib.rb /usr/local/bin/

创建 Redis 节点

首先在机器上创建一个redis_cluster 目录;

[root@localhost src]#mkdir redis_cluster

在 redis_cluster 目录下,创建名为7000、7001、7002的目录,并将 redis.conf 拷贝到这三个目录中

[root@localhost redis_cluster]# mkdir 7000 7001 7002

[root@localhost redis_cluster]# cp /usr/temp/redis-3.0.2/redis.conf /usr/redis/redis_cluster/7000/                                                           [root@localhost redis_cluster]# cp /usr/temp/redis-3.0.2/redis.conf /usr/redis/redis_cluster/7001/

[root@localhost redis_cluster]# cp /usr/temp/redis-3.0.2/redis.conf /usr/redis/redis_cluster/7002

分别修改这三个配置文件,修改如下内容:

port  7000                             //端口7000,7002,7003

bind 本机ip                            //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群

daemonize    yes                      //redis后台运行

pidfile  /var/run/redis_7000.pid  //pidfile文件对应7000,7001,7002

cluster-enabled  yes                 //开启集群  把注释#去掉

cluster-config-file  nodes_7000.conf//集群的配置  配置文件首次启动自动生成 7000,7001,7002

cluster-node-timeout  15000          //请求超时  默认15秒,可自行设置

appendonly  yes                 //aof日志开启  有需要就开启,它会每次写操作都记录一条日志 

启动各个节点

[root@localhost bin]# ./redis-server /usr/redis/redis_cluster/7000/redis.conf

[root@localhost bin]# ./redis-server /usr/redis/redis_cluster/7001/redis.conf

[root@localhost bin]# ./redis-server /usr/redis/redis_cluster/7002/redis.conf

[root@localhost bin]# ./redis-server /usr/redis/redis_cluster/7003/redis.conf(又新增了一个)

 检查redis启动状况

[root@localhost bin]# ps -ef | grep redis

创建集群

Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中,第三步中已将它复制到 /usr/local/bin 目录中,可以直接在命令行中使用了。使用下面这个命令即可完成安装。

[root@localhost bin]# redis-trib.rb create --replicas 1 192.168.119.130:7000 192.168.119.130:7001 192.168.119.130:7002 192.168.119.130:7003

/usr/bin/env: ruby: No such file or directory

出错了,需要安装ruby插件

[root@localhost bin]# yum -y install ruby ruby-devel rubygems rpm-build

又出错了

[root@localhost bin]# ./redis-trib.rb create  --replicas  1 192.168.119.130:7000 192.168.119.130:7001 192.168.119.130:7002 192.168.119.130:7003

/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_original_require没有安装,当然这个一般是说ruby版本太老了,所以现在要么升级ruby版本,要么直接安装ruby的redis驱动。

安装时出现错误,也可以下载文件后进行离线安装,下载地址:http://rubygems.org/gems/redis/versions,选择合适的版本,然后安装:

[root@localhost bin]# cd /usr/temp/

[root@localhost temp]# gem install -l /usr/temp/redis-3.0.2.gem

接下来再去执行集群的命令:

[root@localhost bin]# ./redis-trib.rb create  --replicas  1 192.168.119.130:7000 192.168.119.130:7001 192.168.119.130:7002 192.168.119.130:7003

>>> Creating cluster

Connecting to node 192.168.119.130:7000: OK

Connecting to node 192.168.119.130:7001: OK

又出错了,说明redis中有数据,需要清除一下。

[root@localhost bin]# redis-trib.rb create --replicas 1 192.168.119.130:7000 192.168.119.130:7001 192.168.119.130:7002 192.168.119.130:7003

>>> Creating cluster

Connecting to node 192.168.119.130:7000: OK

Connecting to node 192.168.119.130:7001: OK

Connecting to node 192.168.119.130:7002: OK

Connecting to node 192.168.119.130:7003: OK

*** ERROR: Invalid configuration for cluster creation.

*** Redis Cluster requires at least 3 master nodes.

*** This is not possible with 4 nodes and 1 replicas per node.

*** At least 6 nodes are required.

又出错了,以上说明,至少需要6个redis节点。

重复以上方法,再增加2个redis节点服务

再次执行:

[root@localhost bin]#  ./redis-trib.rb create  --replicas  1 192.168.119.130:7000 192.168.119.130:7001 192.168.119.130:7002 192.168.119.130:7003  192.168.119.130:7004  192.168.119.130:7005

如果出现以下错误:

删除对应的nodes-xxx.conf文件,然后再逐一重启各redis服务

接下来再次执行集群的命令即可成功,过程上要输入yes:

测试

连接到redis集群

[root@localhost bin]# ./redis-cli -h 192.168.119.130 -p 7000

基本信息

192.168.119.130:7000> cluster info

节点信息

192.168.119.130:7000> cluster nodes

数据操作

[root@localhost bin]# ./redis-cli -h 192.168.119.130 -c -p 7000

192.168.119.130:7000> set name zhangsan

-> Redirected to slot [5798] located at 192.168.119.130:7001

OK

192.168.119.130:7001> get name

"zhangsan"

192.168.119.130:7001> keys *

1) "name"

服务器重启后重启redis集群服务

当linux服务重启启动后,redis集群就挂了,重新启动redis服务操作如下:

1、逐一启动之前的各个redis节点

2、再次执行redis集群命令

3、此时即可使用redis集群服务

Redis 集群环境的搭建的更多相关文章

  1. redis集群环境的搭建和错误分析

    redis集群环境的搭建和错误分析 redis集群时,出现的几个异常问题 09 redis集群的搭建 以及遇到的问题

  2. Linux下Redis集群环境的搭建

    一.安装redis(使用redis3.0版本) 1.需要gcc环境,如果没有执行命令安装gcc yum install gcc-c++ 2.下载redis3.0的源码包并上传至服务器 3.解压源码包 ...

  3. Redis集群环境搭建实践

    0 Redis集群简介 Redis集群(Redis Cluster)是Redis提供的分布式数据库方案,通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.相比于主从复制.哨兵模式, ...

  4. 带你自行搭建虚拟机和Redis集群环境,值得收藏!

    前言: 我们看到分析 Redis 使用或原理的文章不少,但是完整搭建一套独立的 redis 集群环境的介绍,并不是很多或者说还不够详细. 那么,本文会手把手带着大家搭建一套 Redis 集群环境,Re ...

  5. Redis集群环境之linux搭建多机版---已完结,跟着一步一步来你就可以集群成功

    上一篇踩着各种坑写了Redis集群环境之linux搭建单机版,这一篇准备就多机版集群进行搭建,主要目的一来是在上一篇的基础上进行精华提粹总结,二来是把单机版与多机版的区别进行记录. 首先软硬件环境: ...

  6. centos7 快速搭建redis集群环境

    本文主要是记录一下快速搭建redis集群环境的方式. 环境简介:centos 7  + redis-3.2.4 本次用两个服务6个节点来搭建:192.168.116.120  和  192.168.1 ...

  7. redis单点、redis主从、redis哨兵sentinel,redis集群cluster配置搭建与使用

    目录 redis单点.redis主从.redis哨兵 sentinel,redis集群cluster配置搭建与使用 1 .redis 安装及配置 1.1 redis 单点 1.1.2 在命令窗口操作r ...

  8. 一文轻松搞懂redis集群原理及搭建与使用

    今天早上由于zookeeper和redis集群不在同一虚拟机导致出了点很小错误(人为),所以这里总结一下redis集群的搭建以便日后所需同时也希望能对你有所帮助. 笔主这里使用的是Centos7.如果 ...

  9. SpringBoot系列教程之Redis集群环境配置

    之前介绍的几篇redis的博文都是基于单机的redis基础上进行演示说明的,然而在实际的生产环境中,使用redis集群的可能性应该是大于单机版的redis的,那么集群的redis如何操作呢?它的配置和 ...

随机推荐

  1. 2、编程工具IAR、烧写工具SmartRF的使用

        IAR可以生成hex文件,SmartRF烧写hex文件到CC2530单片机. [IAR] 主要步骤:创建workspace.新建工程Project.新建文件(C源件).C源件Add到Proje ...

  2. 异步请求 ajax的使用详解

    https://blog.csdn.net/happyaliceyu/article/details/52381446 可以说是很详细了,赞

  3. Luogu P2336 [SCOI2012]喵星球上的点名

    题目链接 \(Click Here\)_ \(200\)行纯干货的代码,一发\(WA\)掉真的是让人窒息,幸好最后找到了锅在哪.(差点就要弃掉了\(QAQ\)) [调出来的时候真的是要高兴到哭出来了\ ...

  4. 【清北学堂2018-刷题冲刺】Contest 4

    Task 1:序列 [问题描述]  小H原本有一个由连续的正整数组成的序列,如{4,5,6}或{10,11,12,13,14,15,16},但是她最近睡眠不足,只能记得其中的一些数字.她想知道,她最少 ...

  5. Python之字符编码与文件操作

    目录 字符编码 Python2和Python3中字符串类型的差别 文件操作 文件操作的方式 文件内光标的移动 文件修改 字符编码 什么是字符编码? ''' 字符编码就是制定的一个将人类的语言的字符与二 ...

  6. PHP手动搭建环境

    php手动搭建环境有好多种组合,版本号不一致,会导致搭建失败. 我搭建的组合是: php5.6+MySQL5.6+Apache2.4的组合. 一.PHP语言包下载 首先从官网上下载php5.6 htt ...

  7. [ZJOI2007]棋盘制作 悬线法dp 求限制下的最大子矩阵

    https://www.luogu.org/problemnew/show/P1169 第一次听说到这种dp的名称叫做悬线法,听起来好厉害 题意是求一个矩阵内的最大01交错子矩阵,开始想的是dp[20 ...

  8. django 跨域解决方案

    使用django-cors-headers模块 github:https://github.com/ottoyiu/django-cors-headers 官方文档中有详细说明 简要配置 1.安装 p ...

  9. mysql性能分析工具

    一.EXPALIN 在SQL语句之前加上EXPLAIN关键字就可以获取这条SQL语句执行的计划 那么返回的这些字段是什么呢? 我们先关心一下比较重要的几个字段: 1. select_type 查询类型 ...

  10. saltstack pillar

    piller组件定义与客户端相关的任何数据(定义在master端),定义好的数据可以被其他组件调用(如state,api) 说通俗了,一句话,就是ansible vars里定义的变量,可以在整个pla ...