LOADING...

加载过慢请开启缓存(浏览器默认开启)

loading

搭建一个Redis集群

2024/4/30 Redis

一、Redis安装

centos:

    yum install redis

一般默认安装在:/usr/local/bin,配置文件默认在/etc/redis.conf
开启redis服务:

    systemctl start redis

检查redis状态

    systemctl status redis

修改redis配置信息:

    vim /etc/redis.conf

找到 bind 127.0.0.1这一行,将其注释掉,让这个服务器上的redis可以被远程连接。
找到#requirepass foobared这行,把注释打开,将foobared改成你的密码。
如果你用了云服务器,不要忘记开放端口~

    systemctl start firewalld

开放6379端口:

    firewall-cmd --zone=public --add-port=6379/tcp --permanent

重启防火墙

    firewall-cmd --reload

查看端口号:

    netstat -ntlp

Now~我们测试一下连接~

    redis-cli -h your-ip -p 6379 -a [your-password]

二、Redis的三种集群模式

1. 主从复制模式

  • 原理:
    一主多从
  • 优点:
    1. 配置简单,易于实现
    2. 实现数据冗余,提高数据可靠性
    3. 读写分离,提升系统性能
  • 缺点:
    1. 主节点故障时候,要手动切换到从节点
    2. 主节点承担所有写操作,可能有性能瓶颈
    3. 无法实现数据分片,受单节点内存限制

2. 哨兵模式

  • 原理:
    主从模式的基础上,增加哨兵节点。
  • 优点:
    1. 故障自动转移
    2. 数据冗余
    3. 读写分离
  • 缺点:
    1. 配置和管理相对复杂
    2. 依然无法实现数据分片

3. Cluster模式

  • 原理:
    Redis Cluster将数据分成16384槽位,每个节点负责管理一部分槽位。当客户端向redis cluster发送请求的时候,cluster会根据键的哈希值将请求路由到相应的节点。
  • 优点:
    1. 数据分片
    2. 负载均衡
    3. 故障自动转移
  • 缺点:
    1. 配置和管理复杂
    2. 复杂操作受到限制

三、Cluster模式的集群搭建

集群模式下,必须有3个及以上的主节点

cluster模式

我有三台主机,每个主机开启两个不同端口,用作master和slave.

  1. 配置redis节点:
    在这里我将master和它的slave放在了同一台机器上,设置不同端口号,开启不同的实例。
    将配置文件cp两份出来,一个给主节点,一个给从节点。

     cp /etc/redis.conf /etc/redis-cluster1.conf
     cp /etc/redis.conf /etc/redis-slave1.conf
    

    打开/etc/redis-cluster1.conf,并修改如下配置:

    #修改端口号
    port 7001
    # 开启集群模式
    cluster-enabled yes
    # 节点超时时间
    cluster-node-timeout 15000
    #后台启动
    daemonize yes
    cluster-config-file redis-cluster1.conf
    appendonly yes
    
  2. 启动节点
    启动主节点:

    redis-server /etc/redis-cluster1.conf
    

    启动从节点:

    redis-server /etc/redis-slave1.conf
    
  3. 启动集群

  redis-cli --cluster create 120.55.188.192:7001 120.55.188.192:7002 
  120.55.188.192:7003 120.55.188.192:7004 120.55.188.192:7005 120.55.188.192:7006 
  --cluster-replicas 1 

前面3个host是master的主机,后面3个是slave
–cluster-replicas 1 :给每个主节点创建一个从节点。

img_show