redis集群
需求来源:一台服务器不能满足开发;
注意:集群往往都伴随着分布式
集群:简单理解就是很多台服务器共同实现同一个业务
集群和分布式概述
分布式:将不同的业务分布在不同的地方;比如按照服务类型就有 web应用和数据库;按照功能模块分为 xx(采购)模块和xx(订单)模块;
集群提供了以下两个关键特性:
1、可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。动态添加服务器
2、高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增强了应用的可用性
当访问的服务器挂了时,集群要有能力找可以正常使用额服务器继续提供服务器。
为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力:
1、负载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。
2、错误恢复--由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。
当访问的服务器挂了时,集群要有能力找可以正常使用额服务器继续提供服务器。
集群和分布式的区别
1)相同点
解决高并发 和 大数据的问题
(2)不同点
集群 是 多个服务去实现同一个功能
分布式 不同的服务器实现不同的功能
集群特点
(1) 扩展性 --可以动态的去扩展的服务器
(2) 高可用 --> 具备容错的功能 (错误恢复)
(3) 负载均衡 -->把请求 分配到不同的服务器里面
集群的架设
主从复制
优点: 完成主从复制 ,
缺点:不能完成容错或者恢复的功能(keepalive) 获取 手动重启
扩展服务器比较麻烦
哨兵模式
好处:完成自动的主从切换
缺点:Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂
Redis-Cluster
好处:可以完成分布式存储问题,解决容量问题
Redis-Cluster 采用无中心结构
redis集群搭建步骤
(1) 拷贝6份 redis文件
修改 端口 为 6379 , 6380,6381,6382,6383,6384
修改配置
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
appendonly yes
(2) 编写一个启动脚本
在对应的文件夹里面新创建文件 startup.bat
title redis-6379
redis-server.exe redis.windows.conf
(3) 安装ruby环境
傻瓜式安装
(4) 安装ruby驱动环境
\rubygems-2.7.7 目录里面执行文件 ruby setup.rb
(5)通过驱动安装redis
切换到6379文件夹里面 安装 redis
gem install redis
(6)启动服务 创建集群
启动6379-6384服务
创建集群
redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384