当前位置: 首页 > article >正文

linux中,redis分布式集群搭建

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

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.kler.cn/a/456741.html

相关文章:

  • android app构建时排除指定类
  • 【0378】Postgres内核 replication slot management (复制槽管理)
  • 【笔记】增值税计算笔记
  • 【mysql】linux安装mysql客户端
  • 云手机:小红书矩阵搭建方案
  • 【漫话机器学习系列】028.CP
  • Android MQTT关于断开连接disconnect报错原因
  • 计算机网络|数据流向剖析与分层模型详解
  • 如何设置在启动时进入命令行模式彻底删除中文输入法。然后重启仍然是图形界面?
  • mysql的安装下载
  • Debian操作系统相对于Ubuntu有什么优势吗?
  • 集成RabbitMQ+MQ常用操作
  • redis相关数据类型介绍
  • .NET常用的ORM框架及性能优劣分析总结
  • 梳理你的思路(从OOP到架构设计)_介绍Android的Java层应用框架03
  • Web Bluetooth API 开发记录
  • 常见局域网硬件故障诊断
  • linux驱动:6ull(5)自定义根节点
  • flink cdc使用flink sql方式运行一直报Make sure a planner module is on the classpath
  • Linux下基本指令
  • 咖啡即将“从天而降”,无人机外卖时代来袭
  • 【C#设计模式(21)——状态模式(State Pattern)】
  • DVWA安装
  • CSS学习记录20
  • 数据分析的分类和EDIT思维框架
  • AIGC时代的网络安全威胁与应急响应机制构建