linux中,redis分布式集群搭建

server/2024/12/28 19:11:47/
redis分布式集群(分布式存储)1.redis分布式高可用存储概念核心概念:哈希槽crc算法计算key值,对16384取余,值在0-16383之间crc % int = ...结论:判断redis集群是否高可用的标准,哈希槽是否完全利用2.redis分布式高可用集群搭建	(1)修改并同步配置文件(2)使用命令创建集群(1)修改并同步配置文件:/etc/redis.conf69  bind 0.0.0.0		#ip地址838 cluster-enabled yes	#启用集群846 cluster-config-file nodes-6379.conf	#存储集群信息文件852 cluster-node-timeout 15000	#超时时间--for循环同步文件:(远程连接+命令)for i in 192.168.88.5{2..6}; do scp /etc/redis.conf $i:/etc/; ssh $i "systemctl enable redis --now"; done--for i in 192.168.88.5{1..6}; do redis-cli -h $i info cluster; done(2)创建集群 --cluster create --cluster-replicas 1redis-cli --cluster create --cluster-replicas 1 \192.168.88.51:6379 192.168.88.52:6379 192.168.88.53:6379 \192.168.88.54:6379 192.168.88.55:6379 192.168.88.56:6379--cluster-replicas 1#指定副本(3)连接集群使用,(数据存储)redis-cli -c -h 任意节点IP -p 任意节点端口-c 启用集群模式,3.集群操命令:redis-cli --cluster help(1)--cluster create  创建集群redis-cli --cluster create --cluster-replicas 1 <host1>:<port> ...<hostN>:<port>(2)--cluster check  检查集群状态redis-cli --cluster check  <host>:<port><host>:<port> 是集群中任意一个节点的 IP 地址和端口号(3)--cluster info 查看集群信息redis-cli --cluster info <host>:<port>(4)--cluster fix  修复集群redis-cli --cluster fix <host>:<port>(5)--cluster call  在集群中执行命令(比如查看集群的key数据)redis-cli --cluster call <host>:<port> <command>[root@host51 ~]#  redis-cli --cluster call 192.168.88.51:6379 keys \*(6)--cluster  add-node    集群扩容redis-cli --cluster add-node <newhost>:<port>  <existhost>:<port> redis-cli --cluster add-node <newhost>:<port> <existhost>:<port> \--cluster-slave --cluster-master-id <master-node-id>说明:add-node:向集群中添加一个新节点。<newhost>:<port>:新节点的地址,格式为 ip:port。<existhost>:<port> :集群中已存在的任意一个节点的地址,格式为 ip:port。这个节点用于告知集群管理系统新节点应该加入到哪个集群中。添加新节点时,必须指定集群中的一个现有节点,以便将新节点加入到正确的集群中。--cluster-slave:新添加的节点将作为一个从节点(slave)加入到集群中,而不是作为一个独立的主节点(master)。--cluster-master-id:指定新从节点将要复制的主节点的 ID。<master-node-id> 是目标主节点的唯一标识符,通常是一串十六进制数字。--cluster-master-id,--cluster-slave:不添加后面两个选项,则扩容位主节点(7)--cluster del-node      集群缩容redis-cli --cluster del-node <host>:<port> <node-id><host>:<port>:集群中任意一个节点的 IP 地址和端口号。<node-id>:你要从集群中移除的节点的唯一标识符(ID)。(8)--cluster rehard 重新分配槽位redis-cli --cluster reshard <host>:<port>Redis 集群内部会协调整个重新分配过程(9)--cluster rebalance 平衡集群槽位redis-cli --cluster rebalance <host>:<port> (10)--cluster set-timeout     整个集群的超时时间redis-cli --cluster set-timeout <host>:<port> <milliseconds>(11)--cluster backup         备份集群rdb文件redis-cli -h <host> -p <port> --rdb /path/to/backup.rdb SAVE

4.redis分布式集群(分布式存储)

    1.redis分布式高可用存储概念
        核心概念:哈希槽
            crc算法计算key值,对16384取余,值在0-16383之间
            crc % int = ...
        结论:判断redis集群是否高可用的标准,哈希槽是否完全利用

    2.redis分布式高可用集群搭建    

        (1)修改并同步配置文件
        (2)使用命令创建集群

        (1)修改并同步配置文件:/etc/redis.conf
            69  bind 0.0.0.0        #ip地址
            838 cluster-enabled yes    #启用集群
            846 cluster-config-file nodes-6379.conf    #存储集群信息文件
            852 cluster-node-timeout 15000    #超时时间
    
            --for循环同步文件:(远程连接+命令)
            for i in 192.168.88.5{2..6}; 
            do 
                scp /etc/redis.conf $i:/etc/; 
                ssh $i "systemctl enable redis --now"; 
            done
            --
            for i in 192.168.88.5{1..6}; do redis-cli -h $i info cluster; done
    
        (2)创建集群 --cluster create --cluster-replicas 1
    
            redis-cli --cluster create --cluster-replicas 1 \
            192.168.88.51:6379 192.168.88.52:6379 192.168.88.53:6379 \
            192.168.88.54:6379 192.168.88.55:6379 192.168.88.56:6379
                --cluster-replicas 1#指定副本
    
        (3)连接集群使用,(数据存储)
            redis-cli -c -h 任意节点IP -p 任意节点端口
                     -c 启用集群模式,


    3.集群操命令:redis-cli --cluster help
        
        (1)--cluster create  创建集群
            redis-cli --cluster create --cluster-replicas 1 <host1>:<port> ...<hostN>:<port>

        (2)--cluster check  检查集群状态
            redis-cli --cluster check  <host>:<port>
            <host>:<port> 是集群中任意一个节点的 IP 地址和端口号

        (3)--cluster info 查看集群信息
            redis-cli --cluster info <host>:<port>

        (4)--cluster fix  修复集群
            redis-cli --cluster fix <host>:<port>

        (5)--cluster call  在集群中执行命令(比如查看集群的key数据)

            redis-cli --cluster call <host>:<port> <command>
            [root@host51 ~]#  redis-cli --cluster call 192.168.88.51:6379 keys \*
            
        (6)--cluster  add-node    集群扩容

            redis-cli --cluster add-node <newhost>:<port>  <existhost>:<port> 

            redis-cli --cluster add-node <newhost>:<port> <existhost>:<port> \
            --cluster-slave --cluster-master-id <master-node-id>
        说明:
        add-node:向集群中添加一个新节点。
        <newhost>:<port>:新节点的地址,格式为 ip:port。
        <existhost>:<port> :集群中已存在的任意一个节点的地址,格式为 ip:port。这个节点用于告知集群管理系统新节点应该加入到哪个集群中。添加新节点时,必须指定集群中的一个现有节点,以便将新节点加入到正确的集群中。
        --cluster-slave:新添加的节点将作为一个从节点(slave)加入到集群中,而不是作为一个独立的主节点(master)。
        --cluster-master-id:指定新从节点将要复制的主节点的 ID。<master-node-id> 是目标主节点的唯一标识符,通常是一串十六进制数字。
        --cluster-master-id,--cluster-slave:不添加后面两个选项,则扩容位主节点


        (7)--cluster del-node      集群缩容
            redis-cli --cluster del-node <host>:<port> <node-id>
            <host>:<port>:集群中任意一个节点的 IP 地址和端口号。
            <node-id>:你要从集群中移除的节点的唯一标识符(ID)。

        (8)--cluster rehard 重新分配槽位

            redis-cli --cluster reshard <host>:<port>
        
            Redis 集群内部会协调整个重新分配过程

        (9)--cluster rebalance 平衡集群槽位
            redis-cli --cluster rebalance <host>:<port> 
              

        (10)--cluster set-timeout     整个集群的超时时间
            redis-cli --cluster set-timeout <host>:<port> <milliseconds>

        (11)--cluster backup         备份集群rdb文件
            redis-cli -h <host> -p <port> --rdb /path/to/backup.rdb SAVE
 


http://www.ppmy.cn/server/153994.html

相关文章

Spring Boot 中 RabbitMQ 的使用

目录 引入依赖 添加配置 Simple&#xff08;简单模式&#xff09; 生产者代码 消费者代码 ?编辑 Work Queue&#xff08;工作队列&#xff09; 生产者代码 消费者代码 Publish/Subscribe&#xff08;发布/订阅&#xff09; 生产者代码 消费者代码 Routing&#x…

【ES6复习笔记】解构赋值(2)

介绍 解构赋值是一种非常方便的语法&#xff0c;可以让我们更简洁地从数组和对象中提取值&#xff0c;并且可以应用于很多实际开发场景中。 1. 数组的解构赋值 数组的解构赋值是按照一定模式从数组中提取值&#xff0c;然后对变量进行赋值。下面是一个例子&#xff1a; con…

外网访问 Docker 容器的可视化管理工具 DockerUI

DockerUI 是一个 docker 容器镜像的可视化图形化管理工具&#xff0c;DockerUI 可以用来轻松构建、管理和维护 docker 环境。让用户维护起来更方便。 本文就介绍如何安装使用 DockerUI 并结合路由侠内网穿透来访问 DockerUI。 第一步&#xff0c;安装 DockerUI 1&#xff0c;…

uniapp中wx.getFuzzyLocation报错如何解决

一、用wx.getLocation接口审核不通过 用uniapp开发小程序时难免需要获取当前地理位置。 代码如下&#xff1a; uni.getLocation({type: wgs84,success: function (res) {console.log(当前位置的经度&#xff1a; res.longitude);console.log(当前位置的纬度&#xff1a; r…

Bert各种变体——RoBERTA/ALBERT/DistillBert

RoBERTa 会重复一个语句10次&#xff0c;然后每次都mask不同的15%token。丢弃了NSP任务&#xff0c;论文指出NSP任务有时甚至会损害性能。使用了BPE ALBERT 1. 跨层参数共享 可以共享多头注意力层的参数&#xff0c;或者前馈网络层的参数&#xff0c;或者全部共享。 实验结果…

vscode-QT环境配置

vscode-QT环境配置 参考链接&#xff1a;https://www.cnblogs.com/RioTian/p/18281114 一、 背景 已经安装了QT软件&#xff0c;电脑里有了QT Creater 12.0。使用QT生成并运行了一个project在这个project的基础上&#xff0c;直接配置vscode的环境 二、环境配置 确认QT工程成…

【网络安全 | 漏洞挖掘】如何通过竞态条件发现账户接管漏洞

未经许可,不得转载。 文章目录 背景正文设置竞态条件实现漏洞背景 目标应用允许用户创建项目。这些项目中包含多个用户角色,每个角色权限不同(如所有者、管理员、成员管理者等)。用户可通过接受邀请来加入项目,而只有项目所有者才能通过输入邮箱将项目所有权转移给其他用…

MacOS M3源代码编译Qt6.8.1

编译时间过长&#xff0c;如果不想自己编译&#xff0c;可以通过如果网盘进行下载&#xff1a; 链接: https://pan.baidu.com/s/17lvF5jQ-vR6vE-KEchzrVA?pwdts26 提取码: ts26 在macOS上编译Qt 6需要一些前置步骤和工具。以下是编译Qt 6的基本步骤&#xff1a; 安装Xcode和…