我公司网站开发技术优势,wordpress 缓存头像,网站推广方法素材,建立网站代码1.为什么需要redis集群#xff1f;
Redis 集群提供了高可用性、横向扩展和数据分片等功能#xff0c;使得 Redis 能够应对大规模的数据存储和高并发访问的需求。以下是一些需要使用 Redis 集群的常见情况#xff1a; 高可用性#xff1a;通过在多个节点之间进行数据复制和…1.为什么需要redis集群
Redis 集群提供了高可用性、横向扩展和数据分片等功能使得 Redis 能够应对大规模的数据存储和高并发访问的需求。以下是一些需要使用 Redis 集群的常见情况 高可用性通过在多个节点之间进行数据复制和故障转移Redis 集群能够保证即使出现节点故障也能够保持系统的可用性。这是因为即使某个节点不可用仍然可以从其他节点获取相同的数据。 横向扩展当单个 Redis 实例无法满足系统的性能需求时可以通过增加更多的节点来扩展整个集群的性能和容量。这种方式称为横向扩展可以通过增加节点来增加集群的总体容量和吞吐量从而满足系统的需求。 数据分片Redis 集群支持将数据分片存储在不同的节点上以便有效地管理大规模的数据集。通过数据分片可以将数据均匀地分布在多个节点上从而降低单个节点的负载和提高系统的整体性能。
总的来说Redis 集群能够提供高可用性、横向扩展和数据分片等功能使得 Redis 能够适应大规模的数据存储和高并发访问的需求。
2. 搭建集群
2.1配置集群所需要的环境
我们现在介绍的是伪集群当然真实情况跟这样差不了多少
Redis集群至少需要3个节点因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了所以2个节点无法构成集群。
要保证集群的高可用需要每个节点都有从节点也就是备份节点所以Redis集群至少需要6台服务器。因为我没有那么多服务器也启动不了那么多虚拟机所在这里搭建的是伪分布式集群即一台服务器虚拟运行6个redis实例修改端口号为7001-7006当然实际生产环境的Redis集群搭建和这里是一样的。
2.2配置六台伪服务器
2.2.1创建他们的目录 2.2.2修改配置文件
2.2.2.1在7001目录下创建配置文件
vim redis.conf
2.2.2.2修改配置文件
include /usr/java/redis/redis-5.0.14/redis.conf
port 7001
pidfile /var/run/redis_7001.pid
dbfilename dump_7001.rdb
dir /usr/myredis/7001
logfile /usr/myredis/7001/redis_err_7001.log
bind 0.0.0.0
protected-mode no
daemonize yescluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 15000
2.2.2.3把这个配置文件复制给另外几个文件夹
echo ./7002 ./7003 ./7004 ./7005 ./7006 | xargs -n 1 cp -v /usr/java/redis_cluster/7001/redis.conf
2.3搞一个一键启动
编写一个shell脚本 #!/bin/bash
/usr/local/bin/redis-server /usr/local/myredis/7001/redis.conf
/usr/local/bin/redis-server /usr/local/myredis/7002/redis.conf
/usr/local/bin/redis-server /usr/local/myredis/7003/redis.conf
/usr/local/bin/redis-server /usr/local/myredis/7004/redis.conf
/usr/local/bin/redis-server /usr/local/myredis/7005/redis.conf
/usr/local/bin/redis-server /usr/local/myredis/7006/redis.confbash stredis.sh 一键启动各个服务
2.4创建redis的集群
/usr/local/bin/redis-cli --cluster create 192.168.37.33:7001 192.168.37.33:7002 192.168.37.33:7003 192.168.37.33:7004 192.168.37.33:7005 192.168.37.33:7006 --cluster-replicas 1
2.5使用cli连接redis集群
-c cluster
-h 主机ip
-p 端口号
/usr/java/redis/bin/redis-cli -c -h 192.168.159.34 -p 7002
2.6查询集群状态
只有进入节点中cli 才可以查看集群状态
3.新增主节点
3.1新建文件夹及复制配置文件 3.2添加节点
/usr/local/bin/redis-cli --cluster add-node 192.168.37.33:7007 192.168.37.33:7001 3.3分配槽slot
新添加的节点为主节点 但是slot为0没有卵用
给他再分配一下从节点
/usr/local/bin/redis-cli --cluster add-node 192.168.37.33:7008 192.168.37.33:7002 --cluster-slave --cluster-master-id 7dfb72f66759e044b36b3431e8dcd0b366bc62b1 yes即可
4.slot槽
4.1在集群中录入值
不在一个slot下的键值是不能使用mget,mset等多键操作 将他们设置一个组才能存进去 5.删除从节点
从节点只读数据没有槽 /usr/local/bin/redis-cli --cluster del-node 192.168.37.33:7001 5b6ca7235628db7a3d534ad8158a95b1b034e0e5 5.1删除完检查节点状态 /usr/local/bin/redis-cli --cluster check 192.168.37.33:7003
已经没有7008节点了 5.2删除主节点
5.2.1归还槽 5.2.2删除节点