Redis集群cluster环境搭建

注意:5.0版本后集群搭建有所改变,不在使用ruby语言创建集群,所以可以跨过ruby的相关插件安装

描述:本章节主要单服务器搭建集群,在一个服务器上启动多个不同端口的redis服务,非真实环境。

   真实环境下redis集群会搭建在多个物理服务器上,并非单一的服务器,但搭建方式一样。

1.redis安装

  安装教程:https://www.cnblogs.com/zwcry/p/9505949.html

2.安装Redis依赖(ruby)

  1)安装依赖包

    yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison sqlite-devel iconv-devel

  2)安装 rvm

    curl -L get.rvm.io | bash -s stable

    错误:

    

    他让你尝试 gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

    执行:

    gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

    或

    gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

  3)再次安装rvm

    curl -L get.rvm.io | bash -s stable

    

    安装成功,提示请把用户添加到rvm用户组

    usermod -G  rvm root

  4)添加生效指令

    echo "source /etc/profile.d/rvm.sh" >> ~/.bashrc && source /etc/profile.d/rvm.sh

  5)安装ruby

    rvm install ruby

  6)安装ruby与redis接口

    gem install redis

    yum install -y rubygems

3.配置六个redis服务(官方建议3主3从)

  1)创建集群目录

    mkdir /usr/local/redis-cluster/

    cd  /usr/local/redis-cluster/

    mkdir 7001

    mkdir 7002

    mkdir 7003

    mkdir 7004

    mkdir 7005

    mkdir 7006

  2)创建集群第一个redis.conf

    cd  /usr/local/redis-cluster/

    cp /usr/local/redis/redis.conf 7001

    vim ./7001/redis.conf

    #找到如下KEY,放开注释,修改值内容

    bind 0.0.0.0#不限制访问ip和远程连接

    protected-mode no#保护模式

    port 7001 #修改端口号 

    daemonize yes#后台运行线程

    pidfile /var/run/redis_7001.pid #守护进程文件

    dbfilename dump7001.rdb#缓存持久存储文件名称

    dir /usr/local/redis-cluster/7001/#db文件存放路径

    appendonly yes#开启日志实时持久

    appendfilename "appendonly7001.aof"#日志名称

    cluster-enabled yes#开启集群

    cluster-config-file nodes_7001.conf#集群节点文件

    cluster-node-timeout 15000#集群通信超过该时长视为挂掉,单位毫秒

  3)拷贝7001/redis.conf到7002~7006

    cd  /usr/local/redis-cluster/

    cp ./7001/redis.conf ./7002/

    cp ./7001/redis.conf ./7003/

    cp ./7001/redis.conf ./7004/

    cp ./7001/redis.conf ./7005/

    cp ./7001/redis.conf ./7006/

  4)修改7002~7006/redis.conf

    #将7002~7006/redis.conf里的7001信息替换为7002~7006的正确信息

    cd  /usr/local/redis-cluster/

    vim ./7002/redis.conf

    :%s/7001/7002/g#所有7001的字符串替换为7002

    vim ./7003/redis.conf

    :%s/7001/7003/g#所有7001的字符串替换为7003

    vim ./7004/redis.conf

    :%s/7001/7004/g#所有7001的字符串替换为7004

    vim ./7005/redis.conf

    :%s/7001/7005/g#所有7001的字符串替换为7005

    vim ./7006/redis.conf

    :%s/7001/7006/g#所有7001的字符串替换为7006

  5)启动6个服务

    cd  /usr/local/redis-cluster/

    /usr/local/redis/src/redis-server ./7001/redis.conf

    /usr/local/redis/src/redis-server ./7001/redis.conf

    /usr/local/redis/src/redis-server ./7002/redis.conf

    /usr/local/redis/src/redis-server ./7003/redis.conf

    /usr/local/redis/src/redis-server ./7004/redis.conf

    /usr/local/redis/src/redis-server ./7005/redis.conf

    /usr/local/redis/src/redis-server ./7006/redis.conf

    ps -ef|grep redis

    

4.创建与测试

  1)创建集群

    /usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.159.129:7001 192.168.159.129:7002 192.168.159.129:7003 192.168.159.129:7004 192.168.159.129:7005 192.168.159.129:7006 

    注意:5.0版本后集群搭建有所改变,不在使用ruby语言创建集群,所以不再使用redis-trib.rb

       请用redis-cli --cluster create 192.168.159.129:7001 192.168.159.129:7002 192.168.159.129:7003 192.168.159.129:7004 192.168.159.129:7005 192.168.159.129:7006 --cluster-replicas 1

    如果出现

    /usr/local/rvm/rubies/ruby-2.3.4/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)
    from /usr/local/rvm/rubies/ruby-2.3.4/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/redis/src/redis-trib.rb:25:in `<main>'

    

      1.确保redis安装编译成功,否则重装

      2.gem install redis

      然后再执行  /usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.159.129:7001 192.168.159.129:7002 192.168.159.129:7003 192.168.159.129:7004 192.168.159.129:7005 192.168.159.129:7006

    成功如图:

    

  2)测试

    /usr/local/redis/src/redis-cli -c -p 7001 --raw#-c表示连集群 --raw中文显示

    set name '丁洁'

    get name

    

5.开机启动

  mkdir /usr/local/redis-cluster/script

  cd /usr/local/redis-cluster/script/

  1)编写 start.sh

    vim start.sh

#!/bin/sh
/usr/local/redis/src/redis-server /usr/local/redis-cluster//redis.conf
/usr/local/redis/src/redis-server /usr/local/redis-cluster//redis.conf
/usr/local/redis/src/redis-server /usr/local/redis-cluster//redis.conf
/usr/local/redis/src/redis-server /usr/local/redis-cluster//redis.conf
/usr/local/redis/src/redis-server /usr/local/redis-cluster//redis.conf
/usr/local/redis/src/redis-server /usr/local/redis-cluster//redis.conf

  2)编写 stop.sh

    vim stop.sh

#!/bin/sh
/usr/local/redis/src/redis-cli -c -p shutdown
/usr/local/redis/src/redis-cli -c -p shutdown
/usr/local/redis/src/redis-cli -c -p shutdown
/usr/local/redis/src/redis-cli -c -p shutdown
/usr/local/redis/src/redis-cli -c -p shutdown
/usr/local/redis/src/redis-cli -c -p shutdown

  3)编写 restart.sh

    vim restart.sh

#!/bin/sh
systemctl stop redis-cluster
systemctl start redis-cluster

  4)改变权限

    chmod 777 ./*

    

  5)编写自启服务

    cd /usr/lib/systemd/system/

    vim redis-cluster.service

    添加内容如下

[Unit]
Description=redis-cluster
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/redis-cluster/script/start.sh
ExecStop=/usr/local/redis-cluster/script/stop.sh
ExecReload=/usr/local/redis-cluster/script/restart.sh
[Install]
WantedBy=multi-user.target

    改变权限

      chmod 777 redis-cluster.service

    进程服务重加载

      systemctl daemon-reload

    开机启动集群

      systemctl enable redis-cluster.service

    启动集群

      systemctl start redis-cluster.service

    关闭集群

      systemctl stop redis-cluster.service

    重启集群

      systemctl restart redis-cluster.service

  

  

  

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

  1. Redis集群环境搭建实践

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

  2. 【redis】 linux 下redis 集群环境搭建

    Redis集群 (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:63791 ...

  3. 2.Redis集群环境搭建

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ 一.基本概念 1.redis集群是一个可以在多个节点之间进行数据共享的设施.redis集群提供了以下两个好处1 ...

  4. redis集群环境搭建的错误

    安装redis集群需要版本号在3.0以上 redis-cluster安装前需要安装ruby环境 搭建集群需要使用到官方提供的ruby脚本. 需要安装ruby的环境. yum -y install ru ...

  5. [心得]redis集群环境搭建的错误

    安装redis集群需要版本号在3.0以上 redis-cluster安装前需要安装ruby环境 搭建集群需要使用到官方提供的ruby脚本. 需要安装ruby的环境. yum -y install ru ...

  6. redis 集群环境搭建-redis集群管理

    集群架构 (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中超过半数的节点检测失效时才生效. (3)客户端与redi ...

  7. redis 集群环境搭建

    原理: 1,每个Redis群集的节点都需要打开两个TCP连接,由于这两个连接就需要两个端口,分别是用于为客户端提供服务的常规Redis TCP命令端口(例如6379)以及通过将10000和命令端口相加 ...

  8. 基于sentinel 的redis集群环境搭建

    环境信息,三台机器,一台master,两台slave,每台机器上启动一个sentinel master 192.168.1.106 slave1 192.168.1.102 slave2 192.16 ...

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

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

随机推荐

  1. 分布式服务框架 Zookeeper(三)官方入门指南

    入门指南:使用ZooKeeper来协调分布式应用 这篇文档包含了让你快速上手ZooKeeper的信息.主要是针对那些想要试一把ZooKeeper的开发人员,包含了安装一个单一ZooKeeper服务器的 ...

  2. vSphere共享存储全配置流程

    1.Openfiler的安装 Openfiler 由rPath Linux驱动,它是一个基于浏览器的免费网络存储管理实用程序,可以在单一框架中提供基于文件的网络连接存储 (NAS) 和基于块的存储区域 ...

  3. vmware workstation 9.0.2安装教程

    现在为您分享最新的VMware Workstation 9.0正式版(VMware Workstation 9.0.0 Build 812388)的下载,同时附上注册机或者注册激活码. 下载地址:   ...

  4. JPA(Java Persistence API)Java持久化API-介绍

    JPA全称: Java Persistence API JPA的宗旨是为POJO提供持久化标准规范,能够脱离容器独立运行,很方便开发和测试.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关 ...

  5. src.rpm包安装方法

    有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译.这类软件包有多种安装方法,以redhat为例说明如下: 注意: 如果没有rpmbuild可以从系统安装光 ...

  6. 新MBP使用git命令时启用xcode的终端log

    Last login: Mon Oct 22 12:41:33 on consoleuser:~ me$ git Agreeing to the Xcode/iOS license requires ...

  7. ChemDraw 15出现安装异常如何处理

    化学绘图软件ChemDraw最近更新了,更新后的是2015版本,ChemDraw Professional 15是其中组件之一.一些用户朋友在使用ChemDraw 15的过程中由于对软件的不了解往往会 ...

  8. CMake error:System Error:No such file or directory CMake error:Could not open file for write in copy operation xxxx.ros_Config.cmake.tmp.

    微型电脑或嵌入式与电脑还是有点不同的,在微型电脑上ros indigo 版本下利用catkin编译如果你遇到如下错误: CMake error:System Error:No such file or ...

  9. PHP中常用的输出语句比较?

    面试中经常问到这个,可以看下. 面试问题:比较echo print() print_r()  var_dump()? echo(): 可以一次输出多个值,多个值之间用逗号分隔.echo是语言结构(la ...

  10. odata配置控制器方法路由1

    查看edmx:http://localhost:12769/odata/$metadata 1.配置 ODataConventionModelBuilder builder = new ODataCo ...