搭建redis集群

Posted Mlxg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建redis集群相关的知识,希望对你有一定的参考价值。

redis主从复制原理:
  主要是通过master server持久化的rdb文件实现的。master server 先dump出内存快照文件,然后将rdb文件传给slave server,slave server 根据rdb文件重建内存表。
redis复制过程如下:
  1、slave server启动连接到master server之后,salve server主动发送SYNC命令给master server
  2、master server接受SYNC命令之后,判断,是否有正在进行内存快照的子进程,如果有,则等待其结束,否则,fork一个子进程,子进程把内存数据保存为文件,并发送给slave server
  3、master server子进程进程做数据快照时,父进程可以继续接收client端请求写数据,此时,父进程把新写入的数据放到待发送缓存队列中
  4、slave server 接收内存快照文件之后,清空内存数据,根据接收的快照文件,重建内存表数据结构
  5、master server把快照文件发送完毕之后,发送缓存队列中保存的子进程快照期间改变的数据给slave server,slave server做相同处理,保存数据一致性
  6、master server 后续接收的数据,都会通过步骤1建立的连接,把数据发送到slave server
  需要注意:slave server如果因为网络或其他原因断与master server的连接,当slave server重新连接时,需要重新获取master server的内存快照文件,slave server的数据会自动全部清空,然后再重新建立内存表,这样会让slave server 启动恢复服务比较慢,同时也给master server带
来较大压力,可以看出redis的复制没有增量复制的概念,这是redis主从复制的一个主要弊端,在实际环境中,尽量规避中途增加从库
1. 安装依赖包和依赖环境 yum install gcc-c++ ruby rubygems 2. 官网下载redis和ruby 解压安装 tar xzf redis-3.2.9.tar.gz ---> cd redis-3.2.9 make prefix=/usr/local/redis --->指定redis安装目录 tar xzf ruby-2.2.10.tar.gz --->注意ruby与redis的版本,亲测这个两个版本可以使用 cd ruby-2.2.10 ./configure && make && make install
    gem install redis --->安装ruby和redis的接口程序

3. mkdir -p /redis-cluster/900{1..6}
        \\cp -rf /usr/local/bin/* /redis-cluster/9001  /redis-cluster/9002 .../redis-cluster/9006
        cp /root/redis-3.2.9/redis.conf  /redis-cluster/9001  /redis-cluster/9002 ... 
  /redis-cluster/9006
        cp /root/redis-3.2.9/src/redis-trib.rb  /redis-cluster
    修改每个900X文件下的redis配置
        daemonize yes   --->后台运行
        port XXXX
        cluster-enabled yes
        build 修改为本机外网ip
 4. 分别启动每个节点redis服务
         要分别进去对应的900X目录执行  注意:一定要进入对应的900X目录执行才行,否则只能启动一个redis
         ./redis-server  ./redis.conf
         ps -ef | grep redis  查看进程启动情况

5.  集群结点规划  
        这里在同一台服务器用不同的端口表示不同的redis服务器,如下:
        主节点:122.114.79.34:9001   122.114.79.34:9002   122.114.79.34:9003
        从节点:122.114.79.34:9004   122.114.79.34:9005   122.114.79.34:9006
        cd /redis-cluster
        执行创建集群命令:
           replicas指定为1标识每个主节点有一个从节点
            gem install redis  ---
           ./redis-trib.rb create --replicas 1 122.114.79.34:9001 122.114.79.34:9002 122.114.79.34:9003 122.114.79.34:9004 122.114.79.34:9005 122.114.79.34:9006
       

6.   客户端连接查看集群信息
        cd /redis-cluster/900X
        ./redis-cli -c -h ip  -p 端口   --(-c以集群的方式连接,-h指定ip,-p指定端口,如果有密码使用-a来指定密码)
         CLUSTER info

7. 向集群中添加节点
       准备一个干净的节点,按照集群的方式修改配置文件,之后启动节点
       执行命令,添加节点--->连接一台查看集群信息cluster info
       ./redis-trib.rb add-node 122.114.79.34:9007 122.114.79.34:9001

  

以上是关于搭建redis集群的主要内容,如果未能解决你的问题,请参考以下文章

基于docker环境搭建redis-cluster集群(多台机器)

如何利用redis来进行分布式集群系统的限流设计

redis搭建集群并用TreeSoft管理

redis集群简单codis搭建

宝塔搭建redis集群

redis 多主多从集群搭建