一、下载Redis

官方链接:https://redis.io/downloads/
这里我选择下载了市场使用比较广泛成熟的6.2版本,最新的6.2.14。

在这里插入图片描述

二、创建Redis管理用户

创建redisadm用户,作为Redis的运维用户。

$ mkdir -p /home/redisadm
$ groupadd -g 60010 redisgrp
$ useradd redisadm -u 60010 -d /home/redisadm -g redisgrp
$ chown -R redisadm:redisgrp /home/redisadm
$ echo "redisadm:redisadm" |chpasswd

三、上传Redis

将Redis安装包上传到linux服务器并解压,可以通过FTP工具连接上传,这里我上传到了/home/redisadm目录下进行安装。
在这里插入图片描述

使用root用户进行解压缩,执行命令:

$ cd /home/redisadm
$ tar -zxvf redis-6.2.14.tar.gz

四、安装Redis

注意使用root用户安装。进入刚才的Redis解压缩路径操作,我这边是/home/redisadm/redis-6.2.14

  1. 进行编译,执行命令:

    $ make
    
  2. 安装环境检查,执行命令:
    注意,这一步不能报错,如果报错了需要检查确实什么插件,将插件安装好。

    $ make test
    
  3. 安装,执行命令:

    $ make install
    
  4. 安装成功后,我们可以看到Redis相关命令已经加到/usr/local/bin目录下了。
    在这里插入图片描述

五、搭建集群

本次我们搭建的Redis集群设计为3台服务器,包含3主3从共6个Redis节点,每个服务器包含1主1从2个Redis节点,分别为master 1、slave1;master 2、slave 2;master 3、slave 3。集群架构如下图:

在这里插入图片描述

接下来的集群配置时,我们可以切换成redisadm用户操作了。

1. 创建集群配置目录redis-cluster/

$ cd /home/redisadm
$ mkdir -p /home/redisadm/redis-cluster
$ ll

在这里插入图片描述

2. 创建master 1节点目录7001,复制redis.conf配置文件

$ cd /home/redisadm/redis-cluster
$ mkdir 7001
$ ll
$ cp ../redis-6.2.14/redis.conf /home/redisadm/redis-cluster/7001/redis.conf
$ cd 7001
$ ll

在这里插入图片描述

3. 配置marst 1主节点7001

主节点7001的配置文件redis.conf修改内容,部分参数阈值可自行调大或减小:

  1. 注释去掉绑定监听的IP地址:

    #bind 127.0.0.1 -::1
    
  2. 关闭本地ip访问安全权限限制,开启远程访问权限:

    protected-mode no
    
  3. 设置节点监听端口:

    port 7001
    
  4. 设置空闲连接断开时间,单位s:

    timeout 30
    
  5. 设置TCP保持活跃时间:

    tcp-keepalive 30
    
  6. 开启守护进程,redis进程以后台形式启动:

    daemonize yes
    
  7. 配置不启用任何特定的进程管理监督机制:

    supervised no
    
  8. 配置指定pid记录文件:

    pidfile /home/redisadm/redis-cluster/7001/redis_7001.pid
    
  9. 配置日志输出级别:

    loglevel verbose
    
  10. 配置日志输出文件:

    logfile "/home/redisadm/redis-cluster/7001/redis.log"
    
  11. 配置logo显示,在启动或运行时会在控制台/界面中显示Logo或版本信息:

    always-show-logo yes
    
  12. 配置禁用 Redis 的 RDB(快照)持久化功能:

    save ""
    
  13. 配置快照失败处理策略,当 Redis 执行 BGSAVE 命令生成 RDB 快照失败时,不停止处理写请求,即忽略错误并继续接受数据写入:

    stop-writes-on-bgsave-error no
    
  14. 配置数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据:

    dir /home/redisadm/redis-cluster/7001/
    
  15. 设置集群节点间访问密码,与Redis密码一致:

    masterauth redisadm
    
  16. 配置主从复制RDB文件加载模式,从库(Slave)在加载主库(Master)发送的 RDB 快照文件时,禁用“无盘加载”(Diskless Load)模式,即采用传统的“基于磁盘”的加载方式:

    repl-diskless-load disabled
    
  17. 设置 Redis 访问密码:

    requirepass redisadm
    
  18. 设置启动 AOF 持久化机制:

    appendonly yes
    
  19. 设置 AOF 持久化参数,当 Redis 执行 AOF 文件重写(BGREWRITEAOF)时,暂停执行 fsync 操作,以避免因频繁同步磁盘而阻塞主进程,从而提升性能:

    no-appendfsync-on-rewrite yes
    
  20. 设置启动集群模式:

    cluster-enabled yes
    
  21. 设置集群节点信息文件:

    cluster-config-file nodes-7001.conf
    
  22. 设置集群节点心跳检测的超时时间,单位ms:

    cluster-node-timeout 5000
    
  23. 设置集群节点槽位覆盖参数,当 Redis Cluster 中存在未分配的槽位(Slot)时,集群将拒绝所有写请求,以确保数据一致性和完整性:

    cluster-require-full-coverage yes
    
  24. 设置慢查询日志保留条数,用于分析性能瓶颈和调试问题:

    slowlog-max-len 500
    

4. 配置slave 1从节点7002

  1. 创建7002目录,从7001目录下复制redis.conf配置文件:

    $ cd /home/redisadm/redis-cluster/
    $ mkdir 7002
    $ ll
    $ cp ./7001/redis.conf ./7002/redis.conf
    $ cd 7002
    $ ll
    

    在这里插入图片描述

  2. 修改7002目录下redis.conf配置文件,将文件内7001替换为7002,主要涉及以下参数:

    port 7002
    logfile "/home/redisadm/redis-cluster/7001/redis.log"
    pidfile /home/redisadm/redis-cluster/7001/redis_7001.pid
    dir /home/redisadm/redis-cluster/7001/
    cluster-config-file nodes-7001.conf
    

5. 配置剩余集群节点

配置方法与7002一致,替换文件内端口信息。

  1. 配置文件复制:因为我这些是在同一个机器上,所以只需要使用cp命令复制到对应的节点文件夹内,修改配置文件就行。

    $ cp /home/redisadm/redis-cluster/7001/redis.conf /home/redisadm/redis-cluster/7003/redis.conf
    $ cp /home/redisadm/redis-cluster/7001/redis.conf /home/redisadm/redis-cluster/7004/redis.conf
    $ cp /home/redisadm/redis-cluster/7001/redis.conf /home/redisadm/redis-cluster/7005/redis.conf
    $ cp /home/redisadm/redis-cluster/7001/redis.conf /home/redisadm/redis-cluster/7006/redis.conf
    

    但是如果有多台机器的时候,就需要使用scp拷贝过去了:

    $ scp /home/redisadm/redis-cluster/7001/redis.conf redisadm@xxx.xxx.xxx.xxx:/home/redisadm/redis-cluster/7003/redis.conf
    $ scp /home/redisadm/redis-cluster/7001/redis.conf redisadm@xxx.xxx.xxx.xxx:/home/redisadm/redis-cluster/7004/redis.conf
    $ scp /home/redisadm/redis-cluster/7001/redis.conf redisadm@xxx.xxx.xxx.xxx:/home/redisadm/redis-cluster/7005/redis.conf
    $ scp /home/redisadm/redis-cluster/7001/redis.conf redisadm@xxx.xxx.xxx.xxx:/home/redisadm/redis-cluster/7006/redis.conf
    
  2. 创建AOF持久化路径:因为是在不同服务器上,所以我们要自己手动创建集群内其他节点的AOF持久化文件目录。比如在服务器1上有2个节点:master 1 (7001)+ slave 1(7002),那我们就创建其余集群节点点目录:

    $ mkdir -p /home/redisadm/redis-cluster/7003/
    $ mkdir -p /home/redisadm/redis-cluster/7004/
    $ mkdir -p /home/redisadm/redis-cluster/7005/
    $ mkdir -p /home/redisadm/redis-cluster/7006/
    

6. 启动集群所有节点

  1. 执行启动命令:
    注意使用redisadm用户启动,不然后面创建集群会报错。

    $ cd /home/redisadm/redis-6.2.14/src
    $ redis-server /home/redisadm/redis-cluster/7001/redis.conf
    $ redis-server /home/redisadm/redis-cluster/7002/redis.conf
    $ redis-server /home/redisadm/redis-cluster/7003/redis.conf
    $ redis-server /home/redisadm/redis-cluster/7004/redis.conf
    $ redis-server /home/redisadm/redis-cluster/7005/redis.conf
    $ redis-server /home/redisadm/redis-cluster/7006/redis.conf
    
  2. 检查启动是否成功,可以看到全部端口启动好,并且后面是[cluster]

    $ ps -ef|grep redisadm
    

    在这里插入图片描述

7. 创建集群

创建集群,使用create创建,cluster-replicas指定从节点个数,前3个节点为master,后3个为则从节点。需要加上redis.conf内设置的密码redisadm,不然会报错。

$ /home/redisadm/redis-6.2.14/src/redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7001 127.0.0.1:7003 127.0.0.1:7005 127.0.0.1:7002 127.0.0.1:7004 127.0.0.1:7006 -a redisadm

在这里插入图片描述

8. 验证集群

  1. 连接任意一个节点测试,这里使用7001端口试试。

    $ /home/redisadm/redis-6.2.14/src/redis-cli -c -h 127.0.0.1 -p 7001 -a redisadm
    

    在这里插入图片描述

  2. 去7001端口对应的从节点查询,自动跳转到了7001主节点:

    $ /home/redisadm/redis-6.2.14/src/redis-cli -c -h 127.0.0.1 -p 7002 -a redisadm
    

    在这里插入图片描述

  3. 换一个主节点7003查询,自动跳转到了7001主节点:

    $ /home/redisadm/redis-6.2.14/src/redis-cli -c -h 127.0.0.1 -p 7003 -a redisadm
    

    在这里插入图片描述

9. 查看集群信息

查看集群信息:

$ /home/redisadm/redis-6.2.14/src/redis-cli -c -h 127.0.0.1 -p 7001 -a redisadm
$ cluster info

在这里插入图片描述
查看集群节点:

$ cluster nodes

在这里插入图片描述

10. 关闭集群

$ /home/redisadm/redis-6.2.14/src/redis-cli -h 127.0.0.1 -p 7001 -a redisadm shutdown
$ /home/redisadm/redis-6.2.14/src/redis-cli -h 127.0.0.1 -p 7002 -a redisadm shutdown
$ /home/redisadm/redis-6.2.14/src/redis-cli -h 127.0.0.1 -p 7003 -a redisadm shutdown
$ /home/redisadm/redis-6.2.14/src/redis-cli -h 127.0.0.1 -p 7004 -a redisadm shutdown
$ /home/redisadm/redis-6.2.14/src/redis-cli -h 127.0.0.1 -p 7005 -a redisadm shutdown
$ /home/redisadm/redis-6.2.14/src/redis-cli -h 127.0.0.1 -p 7006 -a redisadm shutdown

11. 删除节点

$ /home/redisadm/redis-6.2.14/src/redis-cli --cluster del-node 127.0.0.1:7002 9ee2e5b61994f18b49d4da84ada22a75225af2fe

12. 查看客户端连接情况

查询redis连接情况和最大连接数。

$ info clients
$ config get maxclients

在这里插入图片描述

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐