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

相关推荐
Apipi*6 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP7 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
禾小西8 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
广州浮点FLOATLIC9 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
程序员Sunday9 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
BLUcoding10 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
AIgorithmGEEK10 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Yyyyyy~10 小时前
[ Mysql ] 库的操作
mysql
Nil20810 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)10 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障