轻松掌握组件启动之Redis单机、主从、哨兵、集群配置

2023年 10月 13日 50.3k 0

引言

本篇文章的主要目的是分享关于服务器搭建redis的实践经验,旨在为自己以及其他人提供参考和快速搭建redis的便利。通过本文,读者不仅可以省去在网页上来回搜索的麻烦,还能获得搭建redis的详细指导。感谢大家的阅读!

单机配置启动

Redis安装

下载地址:redis.io/download

安装步骤:

1: 安装gcc编译器:yum install gcc

2: 将下载好的redis‐5.0.3.tar.gz文件放置在/usr/local文件夹下,并解压redis‐5.0.3.tar.gz文件

wget http://download.redis.io/releases/redis‐5.0.3.tar.gz
 tar xzf redis‐5.0.3.tar.gz
 cd redis‐5.0.3

3: 切换到解压后的redis‐5.0.3目录下,完成编译与安装

make

4: 修改配置

 daemonize yes #后台启动
 protected‐mode no #关闭保护模式,开启的话,只有本机才可以访问redis
 需要注释掉bind
 #bind 127.0.0.1(bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户
端通过机器的哪些网卡ip去访问,内网一般可以不配置bind,注释掉即可)

5: 启动服务

 src/redis‐server redis.conf

6: 验证服务是否成功启动

 ps ‐ef | grep redis

7: 使用redis‐cli,进入redis客户端

 src/redis‐cli

8: 退出客户端

quit

9: 以下是三种退出redis服务方法:

  • pkill redis‐server
  • kill 进程号
  • src/redis‐cli shutdown
  • Redis主从架构

    image

    redis主从架构搭建,配置从节点步骤:

    1、复制一份redis.conf文件:使用cp命令复制一份redis.conf文件,以便对从节点进行配置。

    2、修改从节点配置:打开复制的redis.conf文件,根据以下步骤修改相关配置:

     port 6380
     pidfile /var/run/redis_6380.pid # 把pid进程号写入pidfile配置的文件
     logfile "6380.log"
    
     dir /usr/local/redis‐5.0.3/data/6380 # 指定数据存放目录
     # 需要注释掉bind
     # bind 127.0.0.1(bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户端通
    过机器的哪些网卡ip去访问,内网一般可以不配置bind,注释掉即可)
    

    3、使用replicaof配置主从复制

     replicaof 192.168.0.60 6379 # 从本机6379的redis实例复制数据,Redis 5.0之前使用slaveof
     replica‐read‐only yes # 配置从节点只读
    

    4、开始启动从节点

    redis‐server redis.conf

    5、登录从节点客户端

    redis‐cli ‐p 6380

    6、测试在6379实例上写数据,6380实例是否能及时同步新修改数据

    7、通过以上的步骤,可以自己再配置一个6381的从节点

    哨兵高可用架构

    image

    以下是构建Redis哨兵架构的步骤:

    1、复制一份sentinel.conf文件

    cp sentinel.conf sentinel‐26379.conf

    2、将sentinel‐2637.conf文件中相关配置修改为以下数值:

     daemonize yes
     pidfile "/var/run/redis‐sentinel‐26379.pid"
     logfile "26379.log"
     dir "/usr/local/redis‐5.0.3/data"
     # sentinel monitor    
     # quorum是一个数字,指明当有多少个sentinel认为一个master失效时(值一般为:sentinel总数/2 + 1),master才算真正失效
      sentinel monitor mymaster 192.168.0.60 6379 2 # mymaster这个名字随便取,客户端访问时会用到
    

    3、使用sentinel‐26379.conf文件启动sentinel哨兵实例
    src/redis‐sentinel sentinel‐26379.conf

    4、查看sentinel的info信息

    127.0.0.1:26379>info
    

    可以看到Sentinel的info里已经识别出了redis的主从

    5、可以自己再配置两个sentinel,端口26380和26381,注意上述配置文件里的对应数字都要修改

    高可用集群模式

    image

    为了搭建一个redis集群,我们需要至少三个主节点。在这里,我们将搭建三个主节点,并且为每个主节点再搭建一个从节点,总共六个redis节点。我们将在三台机器上部署这六个redis实例,每台机器上都会有一个主节点和一个从节点。下面是搭建集群的步骤:

    1:在第一台机器的/usr/local下创建一个名为redis-cluster的文件夹。然后在该文件夹下创建两个文件夹,分别命名为:

    mkdir ‐p /usr/local/redis‐cluster
    mkdir 8001 8004
    

    2:把之前的redis.conf配置文件复制到8001文件夹下,并对其进行以下修改:

    daemonize yes
    port 8001(分别对每个机器的端口号进行设置)
    pidfile /var/run/redis_8001.pid # 把pid进程号写入pidfile配置的文件
    dir /usr/local/redis‐cluster/8001/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据)
    cluster‐enabled yes(启动集群模式)
    cluster‐config‐file nodes‐8001.conf(集群节点信息文件,这里800x最好和port对应上)
    cluster‐node‐timeout 10000
    # bind 127.0.0.1(bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户端通过机器的哪些网卡ip去访问,内网一般可以不配置bind,注释掉即可)
    protected‐mode no (关闭保护模式)
    appendonly yes
    #如果要设置密码需要增加如下配置:
    requirepass xiaoyu (设置redis访问密码)
    masterauth xiaoyu (设置集群节点间访问密码,跟上面一致)
    

    3:将修改后的配置文件复制到8004文件夹下,并对该文件进行批量替换以修改第2、3、4、6项中的端口号。

    :%s/源字符串/目的字符串/g

    4:需要对另外两台机器进行类似的操作。对于第二台机器,使用8002和8005的端口号,对配置文件进行相应的修改。对于第三台机器,则使用8003和8006的端口号进行修改。

    5:请分别启动6个Redis实例,并检查它们是否成功启动。

     /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/800*/redis.conf
     # 查看是否启动成功
     ps ‐ef | grep redis 
    

    6:在Redis 5之前,要创建整个Redis集群,需要使用redis-trib.rb脚本。这个脚本是用Ruby编写的,并且在Redis 5版本中被废弃了。现在,在Redis 5及更高版本中,你可以使用redis-cli来创建整个Redis集群。

     # 下面命令里的1代表为每个创建的主服务器节点创建一个从服务器节点
     # 执行这条命令需要确认三台机器之间的redis实例要能相互访问,可以先简单把所有机器防火墙关掉,如果不关闭防火墙则需要打开redis服务端口和集群节点gossip通信端口16379(默认是在redis端口号上加1W)
     # 关闭防火墙
     # systemctl stop firewalld # 临时关闭防火墙
     # systemctl disable firewalld # 禁止开机启动
     # 注意:下面这条创建集群的命令大家不要直接复制,里面的空格编码可能有问题导致创建集群不成功
     (1)/usr/local/redis‐5.0.3/src/redis‐cli ‐a xiaoyu ‐‐cluster create ‐‐cluster‐replicas 1 192.168.0.61:8001 192.168.0.62:8002 192.168.0.63:8003 192.168.0.61:8004 192.168.0.62:8005 192.168.0.63:8006
    

    7:验证集群

     (1)连接任意一个客户端即可:./redis‐cli ‐c ‐h ‐p (‐a访问服务端密码,‐c表示集群模式,指定ip地址和端口号)
      如:/usr/local/redis‐5.0.3/src/redis‐cli ‐a xiaoyu ‐c ‐h 192.168.0.61 ‐p 800*
     (2)进行验证: cluster info(查看集群信息)、cluster nodes(查看节点列表)
     (3)进行数据操作验证
     (4)关闭集群则需要逐个进行关闭,使用命令:
      /usr/local/redis‐5.0.3/src/redis‐cli ‐a xiaoyu ‐c ‐h 192.168.0.60 ‐p 800* shutdown
    

    总结

    以便读者能够更好地了解和使用Redis。本文主要介绍了Redis的单机配置启动、主从架构、哨兵高可用架构和高可用集群模式的步骤。其实没什么好说的,给以后的文章系列走个铺垫而已,在以后的的文章系列中,我们将进一步深入探讨Redis的高级功能和最佳实践,帮助读者更好地利用Redis来解决实际问题。

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论