Redis搭建集群

redis从3.0版本之后开始提供集群功能,集群的特点:

(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.

(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.

(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可

(4)redis-cluster把所有的物理节点映射到[0-16383]slot(插槽)上,cluster 负责维护node<->slot<->value。

搭建集群的方法:

集群至少都需要三个redis才能称得上集群,我的搭建方法是伪集群。

1、分别设置三个redis的端口号:6379    6380   6381

2、修改配置文件redis.conf,开启集群和打开集群的配置文件:cluster-enabled yes      cluster-config-file "nodes-xxxx.conf"

3、然后启动redis,会看到命令后面有[cluster],代表开启了集群功能。

4、创建集群,创建集群首先要安装ruby环境。

  • 因为redis-trib.rb是有ruby语言编写的所以需要安装ruby环境。
  • yum -y install zlib ruby rubygems
  • gem install redis
  • 手动安装: rz上传redis-3.2.1.gem
  • gem install -l redis-3.2.1.gem  中间是字母L(l小写的)

5、进入redis的安装包路径下的src:cd /usr/local/src/redis/redis-3.0.1/src/   找到redis-trib.rb的可执行命令

直接执行redis-trib.rb  会出现这个命令的使用方法。

6、执行命令:./redis-trib.rb create --replicas 0 192.168.58.102:6379 192.168.58.102:6380 192.168.58.102:6381

--replicas 0:指定了从数据的数量为0

注意:这里不能使用127.0.0.1,否则在Jedis客户端使用时无法连接到!

然后开始创建集群功能。

7、新增一个节点的方法:在安装一个redis,设置端口号是6382,对它开启集群功能并且启动这个redis。然后执行

脚本   ./redis-trib.rb add-node 192.168.58.102:6382 192.168.58.102:6379  前面是插入的节点,后面是被插件集群的任何一个节点。只要是redi集群里面的ip加端口号就可以。添加成功之后,发现没有插槽数,需要为新增的这个节点分配插槽数。在src目录下输入  ./redis-trib.rb reshard 192.168.58.102:6379命令

查看节点情况:

8、删除集群节点:

1、想要删除集群节点中的某一个节点,需要严格执行2步:

  • 将这个节点上的所有插槽转移到其他节点上;
  • 假设我们想要删除6380这个节点
  • 执行脚本:./redis-trib.rb reshard 192.168.56.102:6380
  •    选择需要转移的插槽的数量,因为6380有5128个,所以转移5128个
  • 输入转移的节点的id,我们转移到6382节点:82ed0d63cfa6d19956dca833930977a87d6ddf7
  • 输入插槽来源id,也就是6380的id:
  • 输入done,开始转移

2、使用redis-trib.rb删除节点

   del-node host:port node_id   

   命令具体使用方法    ./redis-trib.rb del-node 192.168.56.102:6380 4a9b8886ba5261e82597f5590fcdb49ea47c4c6c

使用cluster nodes查看已经没有改节点。

 

9、上面的集群比较弱,其中一个节点断掉,其余的redis都不能使用啦,我们需要搭建一个集群的主从复制架构。

架构图:

如果其中的一个从架构出现宕机,不会影响系统的使用。如果主架构出现问题,从架构就会推荐一个然后默认变成一个主架构。下次启用之后启用的架构就会变成一个slave。master宕机,slave变成master,master启动之后变成slave。

至少需要六个redis实例:

6379(主) 6479(从)

6380(主) 6480(从)

6381(主) 6481(从)

分别启动,启动有一个快捷键:cd 6379/ && redis-server ./redis.conf && cd ../

然后进入安装目录的src下:输入下面的命令:

创建集群,指定了从库数量为1,创建顺序为主库(3个)、从库(3个):

./redis-trib.rb create --replicas 1 192.168.56.102:6379 192.168.56.102:6380 192.168.56.102:6381 192.168.56.102:6479 192.168.56.102:6480 192.168.56.102:6481

创建成功!查看集群信息:

 

然后进行测试:看是否成功!

10、集群的注意:

  1. 多键的命令操作(如MGET、MSET),如果每个键都位于同一个节点,则可以正常支持,否则会提示错误。
  2. 集群中的节点只能使用0号数据库,如果执行SELECT切换数据库会提示错误。

 

 

技术选型 【后端】:Java 【框架】:springboot 【前端】:vue 【JDK版本】:JDK1.8 【服务器】:tomcat7+ 【数据库】:mysql 5.7+ 项目包含前后台完整源码。 项目都经过严格调试,确保可以运行! 具体项目介绍可查看博主文章或私聊获取 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧! 在当今快速发展的信息技术领域,技术选型是决定一个项目成功与否的重要因素之一。基于以下的技术栈,我们为您带来了一份完善且经过实践验证的项目资源,让您在学习和提升编程技能的道路上事半功倍。以下是该项目的技术选型和其组件的详细介绍。 在后端技术方面,我们选择了Java作为编程语言。Java以其稳健性、跨平台性和丰富的库支持,在企业级应用中处于领导地位。项目采用了流行的Spring Boot框架,这个框架以简化Java企业级开发而闻名。Spring Boot提供了简洁的配置方式、内置的嵌入式服务器支持以及强大的生态系统,使开发者能够更高效地构建和部署应用。 前端技术方面,我们使用了Vue.js,这是一个用于构建用户界面的渐进式JavaScript框架。Vue以其易上手、灵活和性能出色而受到开发者的青睐,它的组件化开发思想也有助于提高代码的复用性和可维护性。 项目的编译和运行环境选择了JDK 1.8。尽管Java已经推出了更新的版本,但JDK 1.8依旧是一种成熟且稳定的选择,广泛应用于各类项目中,确保了兼容性和稳定性。 在服务器方面,本项目部署在Tomcat 7+之上。Tomcat是Apache软件基金会下的一个开源Servlet容器,也是应用最为广泛的Java Web服务器之一。其稳定性和可靠的性能表现为Java Web应用提供了坚实的支持。 数据库方面,我们采用了MySQL 5.7+。MySQL是一种高效、可靠且使用广泛的关系型数据库管理系统,5.7版本在性能和功能上都有显著的提升。 值得一提的是,该项目包含了前后台的完整源码,并经过严格调试,确保可以顺利运行。通过项目的学习和实践,您将能更好地掌握从后端到前端的完整开发流程,提升自己的编程技能。欢迎参考博主的详细文章或私信获取更多信息,利用这一宝贵资源来推进您的技术成长之路!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值