redis主从复制和集群搭建

redis主从复制

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

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

  • 服务器1:linux-master

  • 服务器2:linux-slave01

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

redis主从复制和集群搭建_第1张图片

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

redis主从复制和集群搭建_第2张图片

  1. 开启后台启动

redis主从复制和集群搭建_第3张图片

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

redis主从复制和集群搭建_第4张图片

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

redis主从复制和集群搭建_第5张图片

  • 从节点查看

redis主从复制和集群搭建_第6张图片

可以看到redis成功启动

  1. 测试
  • 在主节点写入

image-20221113203303517

  • 从节点

redis主从复制和集群搭建_第7张图片

redis集群搭建

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

主节点:

  • 7001
  • 7002
  • 7003

从节点:

  • 7004
  • 7005
  • 7006

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

  1. 进入redis文件夹,新建文件夹
[root@localhost redis-6.2.5]# mkdir redis_cluster
  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. 修改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

同理,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. 查看是否启动成功
ps -ef | grep redis
  • 主:

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

开启成功之后:

redis主从复制和集群搭建_第8张图片

  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
  • 192.168.230.1:7004从节点
  • 192.168.230.101:7001从节点指定的主节点,7001->7004
  • 966a7429e95b40c38c96f651582a790ca4fb3817主节点id

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

全部开启成功之后:

redis主从复制和集群搭建_第9张图片

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

redis主从复制和集群搭建_第10张图片

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

redis主从复制和集群搭建_第11张图片

可以看到节点连接状况

主节点随机分配从节点

  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

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

redis主从复制和集群搭建_第12张图片

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

image-20221113205713909

主节点写入:

redis主从复制和集群搭建_第13张图片

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

  • 进入从节点7006

redis主从复制和集群搭建_第14张图片

redis主从复制和集群搭建_第15张图片

集群搭建完毕

你可能感兴趣的:(技术,redis,数据库,服务器)