• redis主从复制和集群搭建


    redis主从复制

    准备两台服务器,两台服务器可以互相ping通,可以新建两个虚拟机,然后配置网络,此处不在演示

    准备两台虚拟机之后,两台虚拟机安装redis,gcc编译之后我们开始配置redis集群

    • 服务器1:linux-master

    • 服务器2:linux-slave01

    1. linux-master服务器的redis.conf文件都放到redis/bin

    image-20221113202611270

    1. 修改redis.conf文件:
    vim redis.conf
    
    • 1
    1. bind改为本机ip地址

    image-20221113202742590

    1. 开启后台启动

    image-20221113202808783

    1. linux-slave01配置文件新加一些东西,用来指定主节点和端口号(6379)

    image-20221113203038433

    1. 全部更改完之后重启redis,我们在进入redis命令行
    • 主节点查看:

    image-20221113203216377

    • 从节点查看

    可以看到redis成功启动

    1. 测试
    • 在主节点写入

    image-20221113203303517

    • 从节点

    image-20221113203330430

    redis集群搭建

    我们搭建的是三个主节点,三个从节点的集群

    主节点:

    • 7001
    • 7002
    • 7003

    从节点:

    • 7004
    • 7005
    • 7006

    同主从复制,先有两个服务器

    1. 进入redis文件夹,新建文件夹
    [root@localhost redis-6.2.5]# mkdir redis_cluster
    
    • 1
    1. redis.conf文件复制到该文件夹下
    [root@localhost redis-6.2.5]# cp redis.conf /usr/local/redis-6.2.5/redis_cluster/redis-7001.conf
    [root@localhost redis-6.2.5]# cp redis.conf /usr/local/redis-6.2.5/redis_cluster/redis-7002.conf
    [root@localhost redis-6.2.5]# cp redis.conf /usr/local/redis-6.2.5/redis_cluster/redis-7003.conf
    
    • 1
    • 2
    • 3
    1. 修改redis-7001.conf文件
    port 7004
    daemonize yes
    bind 192.168.230.1 #本机ip 集群配置不用指定主节点
    pidfile /var/run/redis_7001.pid
    cluster-enabled yes
    cluster-config-file nodes-7005.conf
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    同理,7002、7003、7004、7005、7006一样的配置,无非改一下ip地址和端口号之类的

    1. 全部修改成功之后,启动这六个节点
    #主节点的机器
    [root@localhost bin]# ./redis-server ../redis_cluster/redis-7001.conf 
    [root@localhost bin]# ./redis-server ../redis_cluster/redis-7002.conf 
    [root@localhost bin]# ./redis-server ../redis_cluster/redis-7003.conf 
    
    #从节点的机器
    [root@localhost bin]# ./redis-server ../redis_cluster/redis-7004.conf 
    [root@localhost bin]# ./redis-server ../redis_cluster/redis-7005.conf 
    [root@localhost bin]# ./redis-server ../redis_cluster/redis-7006.conf 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 查看是否启动成功
    ps -ef | grep redis
    
    • 1
    • 主:

    image-20221113204346862

    • 从:

    image-20221113204401691

    主节点指定从节点连接

    1. 开启主节点(在主机器上)
    [root@localhost bin]# ./redis-cli --cluster create 192.168.230.101:7001 192.168.230.101:7002 192.168.230.101:7003 --cluster-replicas 0
    
    • 1

    开启成功之后:

    image-20221113204724179

    1. 启动成功之后,我们给主节点指定从节点
    [root@localhost bin]#./redis-cli --cluster add-node 192.168.230.1:7004 192.168.230.101:7001 --cluster-slave --cluster-master-id 966a7429e95b40c38c96f651582a790ca4fb3817
    
    • 1
    • 192.168.230.1:7004从节点
    • 192.168.230.101:7001从节点指定的主节点,7001->7004
    • 966a7429e95b40c38c96f651582a790ca4fb3817主节点id

    同理,开启其他两个节点,对应关系为7002->7005,7003->7006

    全部开启成功之后:

    image-20221113205125734

    1. 进入7001的命令行,查看redis集群节点
    ./redis-cli -h 192.168.230.101 -p 7001 -c
    
    • 1
    • -c是进入集群
    1. 查看集群信息
    10.10.41.111:7001> cluster info      #查看集群信息
    
    • 1

    image-20221113205338277

    1. 查看节点信息
    10.10.41.111:7000> cluster nodes      #查看节点信息
    
    • 1

    image-20221113205355902

    可以看到节点连接状况

    主节点随机分配从节点

    1. 启动集群命令
    [root@localhost bin]#./redis-cli --cluster create 1 192.168.230.101:7001 192.168.230.101:7002 192.168.230.101:7003 192.168.230.1:7004 192.168.230.1:7005 192.168.230.1:7006 --cluster-replicas 1
    
    • 1

    该命令会随机分配主节点和从节点

    image-20221113205648429

    1. 查看存取信息
    • 进入主节点7001

    image-20221113205713909

    主节点写入:

    image-20221113205752974

    可以看到,根据redis内置的算法,不同的键值被分到不同的槽位,有的是7004,有的7006有的7002,不过都是从节点的

    • 进入从节点7006

    image-20221113205839770

    image-20221113205843350

    集群搭建完毕

  • 相关阅读:
    第7章 - 多无人机系统的协同控制 --> 多无人机协同控制
    9-AJAX-上-原理详解
    hypermesh常用快捷键
    【18】c++设计模式——>适配器模式
    【数仓日常踩坑】如何获取binlog数据里每个id的最新数据
    LinkedList(3):并发异常
    用数据观测Page Cache
    [算法刷题笔记]哈希表(1)
    工业web4.0UI风格超凡脱俗
    anaconda安装python 3.11
  • 原文地址:https://blog.csdn.net/YSecret_Y/article/details/127837454