05[掌握]高可用、集群、持久化、docker 等前置知识点
高可用 24小时对外提供服务
高并发 同一时间段能处理的请求数
1,中心化和去中心化
1.1,中心化
意思是所有的节点都要有一个主节点
缺点:中心挂了,服务就挂了
中心处理数据的能力有限,不能把节点性能发挥到最大
特点:就是一个路由作用

1.2,去中心化
特点:去掉路由,我自己来路由

以上通俗的就是
中心化:几个经过认证的嘉宾在‘讲话’,所有其他人在听。
去中心化:每个人都可以‘讲话’,每个人都可以选择听或者讲。
2,Redis集群的执行流程分析
2.1,哈希槽说明
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。
当你往Redis Cluster中加入一个Key时,会根据crc16(key) mod 16384计算这个key应该分布到哪个hash slot中,一个hash slot中会有很多key和value。你可以理解成表的分区,使用单节点时的redis时只有一个表,所有的key都放在这个表里;改用Redis Cluster以后会自动为你生成16384个分区表,你insert数据时会根据上面的简单算法来决定你的key应该存在哪个分区,每个分区里有很多key。
2.2,执行流程分析
假如redis集群里面能存放90个key,那么redis集群把90key平分到3个主机
redis对每个主机里面30个存储位置都编号,当应用连接到主机1上面时,应该发送一个写的命令
主机使用crc16算出槽号
如果槽号在1-30 可以直接操作主机1
如果槽号在31-60那么redis会转发到主机2
如果应该再发一个命令set age 22
那么主机2使用crc16再算槽号再转发
3,Redis集群的搭建
3.1,文档
http://redis.cn/topics/cluster-tutorial.html
3.2,原理:去中心化
3.3,集群规则
| 机器编号 | ip | port |
|---|---|---|
| 1 | 192.168.120.129 | 7000 |
| 2 | 192.168.120.129 | 7001 |
| 3 | 192.168.120.129 | 7002 |
| 4 | 192.168.120.129 | 7003 |
| 5 | 192.168.120.129 | 7004 |
| 6 | 192.168.120.129 | 7005 |
3.4,搭建过程
3.4.1 新建文件夹

3.4.2 准备一个服务端程序

3.4.3准备6个redis的配置文件


下面进入redis.conf 配置文件修改配置
Redis-1
bind 0.0.0.0 69行
port 7000 92行
daemonize yes 136行
打开aof 持久化
appendonly yes 672行
开启集群
cluster-enabled yes 814行
集群的配置文件,该文件自动生成
cluster-config-file nodes-7000.conf 822行
集群的超时时间
cluster-node-timeout 5000 828行
Redis-2
daemonize yes
bind 0.0.0.0
port 7001
打开aof 持久化
appendonly yes
开启集群
cluster-enabled yes
集群的配置文件,该文件自动生成
cluster-config-file nodes-7001.conf
集群的超时时间
cluster-node-timeout 5000
Redis-3
daemonize yes
bind 0.0.0.0
port 7002
打开aof 持久化
appendonly yes
开启集群
cluster-enabled yes
集群的配置文件,该文件自动生成
cluster-config-file nodes-7002.conf
集群的超时时间
cluster-node-timeout 5000
Redis-4
daemonize yes
bind 0.0.0.0
port 7003
打开aof 持久化
appendonly yes
开启集群
cluster-enabled yes
集群的配置文件,该文件自动生成
cluster-config-file nodes-7004.conf
集群的超时时间
cluster-node-timeout 5000
Redis-5
daemonize yes
bind 0.0.0.0
port 7004
打开aof 持久化
appendonly yes
开启集群
cluster-enabled yes
集群的配置文件,该文件自动生成
cluster-config-file nodes-7005.conf
集群的超时时间
cluster-node-timeout 5000
Redis-6
daemonize yes
bind 0.0.0.0
port 7005
打开aof 持久化
appendonly yes
开启集群
cluster-enabled yes
集群的配置文件,该文件自动生成
cluster-config-file nodes-7006.conf
集群的超时时间
cluster-node-timeout 5000
3.4.4同时启动所有的redis

3.4.5 使用脚本创建集群(分配槽)
找到集群脚本,在src/src/redis-trib.rb 要安装Ruby的环境【不推荐
3.4.6 使用docker 下载redis-trib的镜像运行【推荐】
安装Docker
yum install docker
启动docker
systemctl start docker
A: 下载镜像
docker pull inem0o/redis-trib
docker run -it --net host inem0o/redis-trib create --replicas 1
192.168.120.129:7000 192.168.120.129:7001
192.168.120.129:7002 192.168.120.129:7003
192.168.120.129:7004 192.168.120.129:7005
-it是为了可以输入
--net host 是为了上docker容器能连接上本地的宿主机


3.4.7测试集群环境

-c 表示连接集群



到此集群搭建完成
05[掌握]高可用、集群、持久化、docker 等前置知识点的更多相关文章
- Nacos高可用集群解决方案-Docker版本
文章主旨 本文目的是配置高可用的Nacos集群 架构图 整体架构为:Nginx + 3 x Nacos +高可用MySQL 高可用MySQL使用主从复制结构的可以参考Docker搭建MySQL主从集群 ...
- (六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)
参考并感谢 官方文档 https://hub.docker.com/_/redis GitHub https://github.com/antirez/redis happyJared https:/ ...
- (七) Docker 部署 MySql8.0 一主一从 高可用集群
参考并感谢 官方文档 https://hub.docker.com/_/mysql y0ngb1n https://www.jianshu.com/p/0439206e1f28 vito0319 ht ...
- 基于docker实现redis高可用集群
基于docker实现redis高可用集群 yls 2019-9-20 简介 基于docker和docker-compose 使用redis集群和sentinel集群,达到redis高可用,为缓存做铺垫 ...
- 消息中间件-ActiveMQ高可用集群和持久化机制
1.修改active.mq的xml文件 2.延时.调度消息 package com.study.mq.b1_message; import org.apache.activemq.ActiveMQCo ...
- Kubeadm 1.9 HA 高可用集群本地离线镜像部署【已验证】
k8s介绍 k8s 发展速度很快,目前很多大的公司容器集群都基于该项目,如京东,腾讯,滴滴,瓜子二手车,易宝支付,北森等等. kubernetes1.9版本发布2017年12月15日,每三个月一个迭代 ...
- ProxySQL Cluster 高可用集群环境部署记录
ProxySQL在早期版本若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数据并不能共通,在主实例上配置后,仍需要在备用节点上进行配置,对管理来说非常不方便.但是Proxy ...
- Kubernetes容器集群 - harbor仓库高可用集群部署说明
之前介绍Harbor私有仓库的安装和使用,这里重点说下Harbor高可用集群方案的部署,目前主要有两种主流的Harbor高可用集群方案:1)双主复制:2)多harbor实例共享后端存储. 一.Harb ...
- [K8s 1.9实践]Kubeadm 1.9 HA 高可用 集群 本地离线镜像部署
k8s介绍 k8s 发展速度很快,目前很多大的公司容器集群都基于该项目,如京东,腾讯,滴滴,瓜子二手车,北森等等. kubernetes1.9版本发布2017年12月15日,每是那三个月一个迭代, W ...
- 【转】harbor仓库高可用集群部署说明
之前介绍Harbor私有仓库的安装和使用,这里重点说下Harbor高可用集群方案的部署,目前主要有两种主流的Harbor高可用集群方案:1)双主复制:2)多harbor实例共享后端存储. 一.Harb ...
随机推荐
- 关键路径——CriticalPath算法
背景:本文是在小甲鱼数据结构教学视频中的代码的基础上,添加详细注释而完成的.该段代码并不完整,仅摘录了核心算法部分,结合自己的思考,谈谈理解. 关键路径: 即决定一项工程的完成时间的路径. 如下图所示 ...
- 关于vue+element对ie9的兼容el-upload不支持在IE9上传
关于vue+element对ie9的兼容el-upload不支持在IE9上传 https://lian-yue.github.io/vue-upload-component/#/zh-cn/ 解决方案 ...
- Rocket - devices - DevNullDevice
https://mp.weixin.qq.com/s/rAmXl-0gDAJqWmy1R3KrlA 简单介绍DevNullDevice的实现. 1. DevNullParams DevNullPara ...
- Chisel3 - Tutorial - VendingMachineSwitch
https://mp.weixin.qq.com/s/5lcMkenM2zTy-pYOXfRjyA 演示如何使用switch/is来实现状态机. 参考链接: https://github.co ...
- MD5安全吗?
MD5的破解方法目前分为两类:一类为彩虹表破解:一类为专业的MD5破解站点. 1.彩虹表 彩虹表是一个庞大的.针对各种可能的字母组合预先计算好的哈希值的集合.彩虹表不仅针对MD5算法,主流的算法都有对 ...
- JAVASE(十)面向对象:特性之多态性、Object类、代码块、关键字:static、final、父子类执行顺序
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.面向对象的特性之:多态性 多态性的理解:事物的多种形态 1.1 广义上多态性的体现:①方法的重写,重 ...
- Java实现 蓝桥杯VIP 算法训练 蜜蜂飞舞
时间限制:1.0s 内存限制:512.0MB 问题描述 "两只小蜜蜂呀,飞在花丛中呀--" 话说这天天上飞舞着两只蜜蜂,它们在跳一种奇怪的舞蹈.用一个空间直角坐标系来描述这个世界, ...
- CSDN账号被冻结了怎么办
CSDN可能因为你的博客里有一些网站链接给你判断为恶意推广广告,冻结, 或者和我一样,在评论区刷屏被冻结, 联系客服即可,向客服提供你的绑定邮箱或绑定手机号,或博客id,客服会给你解冻 PS: 找不到 ...
- Java实现寻找和为定值的多个数
1 问题描述 输入两个整数n和sum,要求从数列1,2,3,-,n中随意取出几个数,使得它们的和等于sum,请将其中所有可能的组合列出来. 2 解决方案 上述问题是典型的背包问题的应用,即先找出n个数 ...
- Linux文本编辑vi基本操作
vi是Linux/Unix最常用的全屏幕文本编辑器,他的作用是显示.编辑.建立文本文件.它没有菜单,只有命令. vi工作模式图: 编辑模式进入插入模式命令:A:在光标所在行尾插入 a:在光标所在字符后 ...