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
1.redis分布式高可用存储概念
核心概念:哈希槽
crc算法计算key值,对16384取余,值在0-16383之间
crc % int = ...
结论:判断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