zoukankan      html  css  js  c++  java
  • Redis与Redis 伪集群环境的搭建

    一 、准备工作

    1. GCC编译环境
    2. ruby运行环境
    3. 安装ruby脚本运行包

    二、环境安装

    1.GCC环境

    首先,因为redis是由C语言编写的,所以需要安装GCC环境,可以用

    gcc -v
    

    命令来检查是否安装了GCC环境,如果已经安装了的可以跳过这一步,没有用

    yum install gcc-c++
    

    来进行GCC环境的在线安装。

    2.ruby运行环境

    注:如果只是想使用单机Redis,即不搭建集群可以跳过2、3环境的安装,但是如果要搭建redis集群的话必须要有ruby环境和脚本运行包

    使用以下两条命令来安装ruby的运行环境:

    yum install ruby
    yum install rubygems
    

    3.ruby脚本运行包

    网上自行下载ruby的脚本运行包,下载地址https://rubygems.org/gems/redis/versions/3.0.0上传到Linux中进行安装,我这里用的是redis-3.0.0.gem包,所以使用命令

    gem install redis-3.0.0.gem 
    

    来进行安装,这里根据自己的版本来安装,

    三、redis的安装

    1.将自己下载的redis源码包上传到Linux中,解压缩

    2.进入redis解压的目录,这里有一个Makefile文件,就是用于安装redis的,输入命令

    make install PREFIX=/usr/local/redis
    

    PREFIX后指定的是redis的安装目录,可以自行修改,我这里把它安装到/usr/local/redis目录

    四、redis的启动

    redis有两种前端和后端两种方式的启动,推荐使用后端启动,如果使用前端启动,退出客户端之后,redis服务就关闭了,不利于开发

    前端启动

    前端启动的方式比较简单,进入redis的目录

    cd /usr/local/redis/bin
    ./redis-server
    

    看到以下界面说明redis启动成功

    后端启动

    后端启动需要修改redis的配置文件,首先将解压目录的/redis-3.0.0/redis.conf复制到/usr/local/redis/bin目录下,

    cp /redis-3.0.0/redis.conf /usr/local/redis/bin
    

    之后修改配置文件,用vim打开redis.conf,然后找到daemonize no 将no修改为yes,保存退出,再用命令

    ./redis-server redis.conf
    

    启动redis,可以用命令 ps aux|grep redis 来查看redis是否启动成功,如果有redis进程,就代表成功启动

    连接和关闭redis

    连接redis:./redis-cli -h 192.168.61.129-p 6379

    -h:连接的服务器的地址

    -p:服务的端口号

    关闭redis: ./redis-cli shutdown

    五、搭建redis的伪集群(重点)

    因为redis的投票容错机制,redis集群至少需要三个redis服务器,每台redis服务器需要定时的向其他服务器发送自己的状态,让其它的redis服务器进行投票确认这台服务器是不是挂了,为了保证集群的高可用,每台主节点至少要有一个备用节点,因此这次我们搭建三个主节点和三个备用节点。

    1.在/usr/local目录下创建 redis-cluster目录

    2.修改bin目录下的redis.conf 文件 使用vim命令打开redis.conf 关键字搜索找到 cluster-enabled yes 这一条,把注释去掉,保存退出

    3.将bin目录复制到redis-cluster目录,复制六份,并且每个文件夹重命名为redis01、redis02......以此类推

    cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis01

    cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis02

    ...........................

    4.分别修改每个redis01,02中的配置文件的端口port分别为7001、7002、7003....以此类推

    5.为了方便一键启动redis集群而不用一个一个启动server ,我们创建启动和关闭redis服务的批处理脚本,在redis-cluster目录下分别创建两个名为start-all.sh和shutdown-all.sh的文件,文件内容分别为:

    start-all.sh

    cd ../
    cd redis02
    ./redis-server redis.conf
    cd ../
    cd redis03
    ./redis-server redis.conf
    cd ../
    cd redis04
    ./redis-server redis.conf
    cd ../
    cd redis05
    ./redis-server redis.conf
    cd ../
    cd redis06
    ./redis-server redis.conf
    cd ../

    shutdown-all.sh

    redis01/redis-cli -p 7001 shutdown
    redis02/redis-cli -p 7002 shutdown
    redis03/redis-cli -p 7003 shutdown
    redis04/redis-cli -p 7004 shutdown
    redis05/redis-cli -p 7005 shutdown
    redis06/redis-cli -p 7006 shutdown

    并且修改这两个文件的权限,使之成为可执行文件

    chmod u+x start-all.sh  
     chmod u+x shutdown-all.sh  
    

    6.使用批处理脚本启动每个redis节点,再使用ruby脚本搭建redis集群

    ./redis-trib.rb create --replicas 1 192.168.61.129:7001 192.168.61.129:7002 192.168.61.129:7003 192.168.61.129:7004 192.168.61.129:7005 192.168.61.129:7006
    

    在这里有一个特别要注意的点,在使用上面的命令搭建集群的时候,当执行到Can I set the above configuration? (type 'yes' to accept)的时候,会让你输入yes继续,注意!!!这里是输入yes!这里是输入yes!这里是输入yes!而不是像其他的Linux命令输入 y 就执行,如果不是输入的yes,首先集群搭建不成功但是没有错误提示,会导致后面的一些连接节点的操作无法执行,博主曾经在这个坑里待了一下午才找到原因,切记切记!!!

    到此redis的集群就搭建完成了,因为条件的限制,我们这次搭建的是伪集群。

    六:集群的连接

    使用命令连接集群,其中的-c参数表示连接的是redis集群

    redis01/redis-cli -p 7002 -c
    
  • 相关阅读:
    4. ConcurrentHashMap 锁分段机制
    3. 原子变量-CAS算法
    2. 原子变量
    1. volatale 关键字 -内存可见性
    6.8 全局查询日志
    js实现数字分页
    拆箱和装箱
    string与stringbuilder的区别
    C#之out与ref的共性与区别以及用法
    asp.net操作xml(增删查改)
  • 原文地址:https://www.cnblogs.com/blackmlik/p/12075047.html
Copyright © 2011-2022 走看看