【redis】集群 如何搭建集群详解
文章目录
- 集群搭建
- 1. 创建目录和配置
- 2. 编写 docker-compose.yml
- 完整配置文件
- 3. 启动容器
- 4. 构建集群
- 超时
集群搭建
基于 docker
在我们云服务器上搭建出一个 redis
集群出来
当前节点,主要是因为我们只有一个云服务器,搞分布式系统,就比较麻烦。实际工作中,一般是通过多个主机的方式,来搭建集群
- 此处我们使用
9
个docker
容器,来模拟9
台服务器
此处我们创建
11
个redis
节点,其中前9
个用来演示集群的搭建,后2
个用来演示集群扩容
一定要记得,把以前启动的 redis
容器给停掉
切换到对应目录下后,输入:
# 查看有哪些容器正在运行
docker ps -a # 关闭此目录下的容器
docker-compose down
1. 创建目录和配置
切换到 Cluster
目录后
touch docker-compose.ymltouch generate.sh
- 在
Linux
上,以.sh
后缀结尾的文件,称为“shell 脚本”- 使用
Linux
的时候,都是通过一些命令来进行操作的。使用命令操作,就非常适合把命令给写到一个文件中,批量化执行 - 同时,还能加入:条件、循环、函数等机制。 因此,就可以基于这些来完成更复杂的工作了
- 使用
- 此处我们需要创建
11
个redis
节点,这些redis
的配置文件内容,大同小异,此时就可以使用脚本来批量生成(也可以不使用脚本,手动一个一个改)
shell
脚本:
for port in $(seq 1 9); \
do \
mkdir -p redis${port}/
touch redis${port}/redis.conf
cat << EOF > redis${port}/redis.conf
port 6379
bind 0.0.0.0
protected-mode no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.30.0.10${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
EOF
done# 注意 cluster-announce-ip 的值有变化.
for port in $(seq 10 11); \
do \
mkdir -p redis${port}/
touch redis${port}/redis.conf
cat << EOF > redis${port}/redis.conf
port 6379
bind 0.0.0.0
protected-mode no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.30.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
EOF
done
for port in $(seq 1 9); \
:基于范围的循环。类似与Java
的for each
seq
就是一个Linux
命令,后面俩参数就是从哪到哪,能生成[1, 9]
这个区间
do
和done
:在shell
脚本里面,{}
用来表示变量,不是表示代码块。对于for
来说,就是使用do
和done
来表示代码块开始和结束\
:是续行符,把下一行的内容和当前行,合并成一行。shell
默认情况下,要求把所有的代码都写到一行里,所以可以使用续行符来换行- 循环体里面:
mkdir -p redis${port}/
:创建目录,名字为redis1 -> redis9
(shell
中拼接字符串是直接写到一起,而不需要使用+
)${}
是取变量的值操作
touch redis${port}/redis. conf
:创建文件。在刚才的目录基础下,创建redis.conf
cat
:进行写内容。将下面的内容,写到刚刚创建的文件中去- 文件里面大多是一样的,
cluster-announce-ip 172.30.0.10${port}
有点变化。我们通过变量来构造不同的ip
cluster-enabled yes
:开启集群cluster-config-file nodes.conf
:里面包含了一些集群的配置信息,不用我们手动写,而是redis
自动生成的(后续启动这些节点之后,会配置一些redis
集群信息)cluster-node-timeout 5000
:多个节点之间进行交互,保持联络cluster-announce-ip 172.30.0.10${port}
:该redis
节点(自己)所在主机的ip
地址(当前是使用docker
容器模拟的主机,所以此处写的是docker
容器的ip
)cluster-announce-port 6379
:redis
节点自身绑定的端口(容器内的端口),不同容器内部可以有相同端口,后续进行端口映射,再把这些容器内的端口映射到容器外的不同端口即可cluster-announce-bus-port 16379
:- 业务端口:用来进行业务数据通信。响应
redis
客户端的请求 - 管理端口:为了完成一些管理上的任务来进行通信。如果某个分片中的
redis
主节点挂了,就需要让从节点成为主节点,就需要通过刚才管理端口来完成对应的操作(Tomcat
里面,8080
是业务端口,8005
是管理端口)
- 业务端口:用来进行业务数据通信。响应
- 文件里面大多是一样的,
- 这些配置项都不用记,用到时候去查即可
预期效果:得到 11
个目录,每个目录里面都有一个配置文件,配置文件中,ip
地址各不相同
执行命令:
通过命令:
bash generate.sh
随后可以看到目录里面:
2. 编写 docker-compose.yml
version: '3.7'
networks:mynet:ipam:config:- subnet: 172.30.0.0/24services:redis1:image: 'redis:5.0.9'container_name: redis1restart: alwaysvolumes:- ./redis1/:/etc/redis/ports:- 6371:6379- 16371:16379command:redis-server /etc/redis/redis.confnetworks:mynet:ipv4_address: 172.30.0.101// 剩余10个容器,格式和这个一样,将名字、端口号、ip地址递增即可
networks
:此处为了后续创建静态ip
,此时要先手动创建出网络,同时给这个网段也分配ip
ip 地址 = 网络号 + 主机号
。使用子网掩码的方式来区分网络号和主机号- 这里的
/24
就代表子网掩码左边24
位都是1
,右边8
位是0
,255.255.255.0
,网络号就是172.30.0
ip
是内网 ip- 配置的网络号不能和当前主机上现有的其他网段冲突(每个人的主机上已有的网段,具体不一定一样,
ifconfig
)
- 后面就是常规操作,配置容器
ports
:此处不进行端口映射,也是可以的,映射一下目的是为了在容器外面通过客户端直接进行访问- 静态 ip 配置,网络号部分要和前面的网段一致,主机号部分,可以随便配置(
1-255
,保证不重复),按照之前在配置文件中写的101-111
这11
台主机
进行上述配置的时候,一定要保证前后一致性(第一步和第二部相关部分,端口号、ip 地址)
完整配置文件
version: '3.7'
networks:mynet:ipam:config:- subnet: 172.30.0.0/24services:redis1:image: 'redis:5.0.9'container_name: redis1restart: alwaysvolumes:- ./redis1/:/etc/redis/ports:- 6371:6379- 16371:16379command:redis-server /etc/redis/redis.confnetworks:mynet:ipv4_address: 172.30.0.101redis2:image: 'redis:5.0.9'container_name: redis2restart: alwaysvolumes:- ./redis2/:/etc/redis/ports:- 6372:6379- 16372:16379command:redis-server /etc/redis/redis.confnetworks:mynet:ipv4_address: 172.30.0.102redis3:image: 'redis:5.0.9'container_name: redis3restart: alwaysvolumes:- ./redis3/:/etc/redis/ports:- 6373:6379- 16373:16379command:redis-server /etc/redis/redis.confnetworks:mynet:ipv4_address: 172.30.0.103redis4:image: 'redis:5.0.9'container_name: redis4restart: alwaysvolumes:- ./redis4/:/etc/redis/ports:- 6374:6379- 16374:16379command:redis-server /etc/redis/redis.confnetworks:mynet:ipv4_address: 172.30.0.104redis5:image: 'redis:5.0.9'container_name: redis5restart: alwaysvolumes:- ./redis5/:/etc/redis/ports:- 6375:6379- 16375:16379command:redis-server /etc/redis/redis.confnetworks:mynet:ipv4_address: 172.30.0.105redis6:image: 'redis:5.0.9'container_name: redis6restart: alwaysvolumes:- ./redis6/:/etc/redis/ports:- 6376:6379- 16376:16379command:redis-server /etc/redis/redis.confnetworks:mynet:ipv4_address: 172.30.0.106redis7:image: 'redis:5.0.9'container_name: redis7restart: alwaysvolumes:- ./redis7/:/etc/redis/ports:- 6377:6379- 16377:16379command:redis-server /etc/redis/redis.confnetworks:mynet:ipv4_address: 172.30.0.107redis8:image: 'redis:5.0.9'container_name: redis8restart: alwaysvolumes:- ./redis8/:/etc/redis/ports:- 6378:6379- 16378:16379command:redis-server /etc/redis/redis.confnetworks:mynet:ipv4_address: 172.30.0.108redis9:image: 'redis:5.0.9'container_name: redis9restart: alwaysvolumes:- ./redis9/:/etc/redis/ports:- 6379:6379- 16379:16379command:redis-server /etc/redis/redis.confnetworks:mynet:ipv4_address: 172.30.0.109redis10:image: 'redis:5.0.9'container_name: redis10restart: alwaysvolumes:- ./redis10/:/etc/redis/ports:- 6380:6379- 16380:16379command:redis-server /etc/redis/redis.confnetworks:mynet:ipv4_address: 172.30.0.110redis11:image: 'redis:5.0.9'container_name: redis11restart: alwaysvolumes:- ./redis11/:/etc/redis/ports:- 6381:6379- 16381:16379command:redis-server /etc/redis/redis.confnetworks:mynet:ipv4_address: 172.30.0.111
3. 启动容器
启动之前,一定要把之前已经运行的 redis
相关东西都干掉!否则就可能因为端口冲突等原因,导致现在的启动失败
通过下面命令启动
docker-compose up -d
4. 构建集群
此处把前
9
个主机构建成集群,3
主6
从,后2
个主机暂时不用
相关命令:
redis-cli --cluster create 172.30.0.101:6379 172.30.0.102:6379 172.30.0.103:6379 172.30.0.104:6379 172.30.0.105:6379 172.30.0.106:6379 172.30.0.107:6379 172.30.0.108:6379 172.30.0.109:6379 --cluster-replicas 2
--cluster create
:建立集群,后面填写每个节点的 ip 和地址--cluster-replicas 2
:表示每个主节点要两个从节点备份- 这个配置设置之后,
redis
就知道了,3
个节点是一伙的,一共3
个分片
- 这个配置设置之后,
redis
在构建集群的时候,谁是主节点,谁是从节点,谁和谁是一个分片,都是不固定的
- 本身从集群的角度来看,提供的这些节点之间本来就应该是等价的
命令执行完之后
- 分片信息、槽位信息、主从节点信息… 都给出了
- 最后需要手动输入“
yes
”进行构建
超时
如果在输入构建命令连接不上,超时,就需要进行一步处理
在进行构建集群操作之前,需要先让这个命令在任意一个 redis
容器中进行
- 所有的
redis
容器都是在同一个局域网内,但是此时这个宿主机却不在,想要进行后续操作,就必须要保证都在同一个局域网内 - 在容器内进行构建集群的操作,就能保证都是在同一个局域网内了
执行命令
docker exec -it ce /bin/bash
docker exec
:在一个已经运行中的docker
容器内执行命令-it
:-i
:表示以交互模式运行,让能够保持输入流打开-t
:分配一个“伪终端”(TTY),这样你可以像在普通终端中一样与容器交互
ce
:容器的名字或容器 ID,表示要进入的容器bin/bash
:表示在容器内部启动一个Bash shell
,通常用于容器内操作
在集群构建完毕之后,输入 exit
就可以退出容器
- 生成每个
redis
节点的配置文件 - 使用
docker
创建出11
个redis
节点,并且启动容器 - 使用
redis-cli
执行构建集群命令
相关文章:
【redis】集群 如何搭建集群详解
文章目录 集群搭建1. 创建目录和配置2. 编写 docker-compose.yml完整配置文件 3. 启动容器4. 构建集群超时 集群搭建 基于 docker 在我们云服务器上搭建出一个 redis 集群出来 当前节点,主要是因为我们只有一个云服务器,搞分布式系统,就比较…...
Linux应用:线程基础
线程介绍 进程是程序在操作系统里的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的一个执行单元,是 CPU 调度和分派的基本单位。一个进程可以包含多个线程,这些线程共享进程的资源,如内存空间、文…...
力扣HOT100之普通数组:238. 除自身以外数组的乘积
这道题不能使用除法,我第一时间想到用前缀表和后缀表来解决,假设数组nums的长度为n,我们直接定义前缀表pre和后缀表suf,其中pre[i] pre[i - 1] * nums[i - 1] nums[0] * nums[1] * ... * nums[i - 1] ,而suf[j] suf…...
PHP回调后门小总结
目录 1.call_user_func 函数说明 蚁剑连接 2.数组操作造成的单参数回调后门 array_filter 函数说明 蚁剑连接 array_map 函数说明 蚁剑连接 3.二参数回调函数 uasort 函数说明 uksort array_reduce array_udiff 蚁剑连接 4.三参数的回调后门 array_walk 函数说…...
《深度剖析SQL数据类型转换:隐式与显式的奥秘》
在SQL的世界里,数据类型转换是一个基础且关键的操作,它贯穿于数据库开发、管理与数据分析的各个环节。数据类型转换分为隐式转换和显式转换,二者各有特点与应用场景,深刻理解它们对于编写高效、稳定的SQL代码至关重要。 一、数据…...
通过TIM+DMA Burst 实现STM32输出变频且不同脉冲数量的PWM波形
Burst介绍: DMA控制器可以生成单次传输或增量突发传输,传输的节拍数为4、8或16。 为了确保数据一致性,构成突发传输的每组传输都是不可分割的:AHB传输被锁定,AHB总线矩阵的仲裁器在突发传输序列期间不会撤销DMA主设备…...
多线程 --- 多线程编程
在写代码的时候,可以使用多进程进行并发编程(在Java中,不太推荐,很多很多关于进程相关的API,在Java标准库中,都没有提供),也可以使用多线程进行并发编程(系统提供了多线程…...
利用新一代雷达传感器增强ADAS系统的检测和计算(TI文档)
摘要 德州仪器 (TI) 的新一代雷达传感器AWR2E44P和AWR2944P推动了TI的ADAS雷达产品系列发展,专注于提 高性能以满足严格的 NCAP(新车评估计划)和 FMVSS(联邦机动车辆安全标准)自动驾驶和安全法规。这些雷 达器件为 AWR…...
前端工程化开篇
前端发展史梳理: 最早的html,css,js是前端三剑客,足以实现所有的前端开发任务,但是呢,一个简单的前端交互效果可能就需要一大堆的代码去实现。 后来呢,有了前端库jQuery,他可以使前…...
Android 问真八字-v2.1.7[看八字APP]
Android 问真八字 链接:https://pan.xunlei.com/s/VOMMuCVQRQrM2vRsHj14SsO0A1?pwdavzw# Android 问真八字-v2.1.7[看八字APP]...
go - grpc入门
前期准备 工具安装及使用 grpc开发 编写proto文件 proto文件是符合Protocol Buffers语言规范的数据交换协议文件,就像以前WebService定义服务时使用的XML文件。现在一般都是用proto3了,这里创建一个名为 hello.proto 的文件,放到项目的pr…...
Linux操作系统配置本地yum源和定时任务
操作系统环境:CentOS 7.2 本地yum源配置 1.挂载镜像 mount /dev/cdrom /mnt/cdrom 2.备份原yum配置 mv /etc/yum.repos.d /etc/yum.repos.d.bak 3.创建本地yum源配置文件 mkdir /etc/yum.repos.d vi /etc/yum.repos.d/CentOS-local.repo 添加内容: #本…...
【活动回顾】StarRocks Singapore Meetup #2 @Shopee
3 月 13 日,StarRocks 社区在新加坡成功举办了第二场 Meetup 活动,主题为“Empowering Customer-Facing Analytics”。本次活动在 Shopee 新加坡办公室举行,吸引了来自 Shopee、Grab 和 Pinterest 的专家讲师以及 50 多位参会者。大家围绕电商…...
优选算法——双指针专题
本章先分享关于优选算法的双指针的思路: 主要是以题目来展示常见使用双指针的思路。 ps: 双指针做法:不要被表面所迷惑,它其实是通过用一个数组的下标来充当指针 数组分两块:是⾮常常⻅的⼀种题型,主要就是根据⼀种…...
深度解析:TOML、XML、YAML及其他配置/数据格式对比
深度解析:TOML、XML、YAML及其他配置/数据格式对比 在软件开发和系统配置中,选择合适的配置或数据格式至关重要。本文将对比 TOML、XML、YAML 等常见格式,梳理它们的核心特性、适用场景及区别,并扩展介绍其他类似格式,…...
冗余技术:堆叠技术+链路聚合
目录 前言 一.堆叠技术概述 二.堆叠技术原理 三.堆叠系统登录 四.堆叠合并/分裂 4.1 堆叠双主检测机制(MAD) 五.链路聚合技术概述 六.链路聚合模式 前言 在硬件加速与数据爆炸时代,堆叠技术通过模块化分层设计,实现资源动…...
存储服务器是指什么
今天小编主要来为大家介绍存储服务器主要是指什么,存储服务器与传统的物理服务器和云服务器是不同的,其是为了特定的目标所设计的,在硬件配置方式上也有着一定的区别,存储空间会根据需求的不同而改变。 存储服务器中一般会配备大容…...
文件上传绕过的小点总结(8)
16.apache解析漏洞条件竞争 class MyUpload{.................. var $cls_arr_ext_accepted array(".doc", ".xls", ".txt", ".pdf", ".gif", ".jpg", ".zip", ".rar", ".7z",&q…...
设计模式-结构型模式-外观模式
概述 外观模式 : Facade Pattern : 是一种 结构型设计模式. 它为复杂子系统提供一个简化的统一接口,使得客户端无需直接与子系统的各个组件交互,从而降低系统的耦合性。 核心思想 统一接口:将多个子系统的复杂操作封装到一个“外观类”中&…...
DeepSeek 本地部署指南
文章目录 DeepSeek 本地部署指南一、前言二、部署前的准备工作2.1 硬件要求2.2 软件环境 三、模型下载四、本地部署步骤4.1 检查硬件加速支持4.2 部署模型4.3 优化部署 五、常见问题及解决方法5.1 内存不足5.2 模型下载失败5.3 GPU 无法使用 六、总结 DeepSeek 本地部署指南 一…...
Windows Server 2025 使用 IIS 搭建 ASP.NET 3.5 网站
开启远程桌面 参考文章Windows server开启远程桌面教程打开服务管理器。ECS 配置安全组,开启 3389Telnet 验证网络联通性 telnet x.x.x.x 338安装 Windows App,登录验证 安装 ASP.NET 3.5 1.参考文章Windows Server 2012安装 .NET Framework 3.5和 Wi…...
python每日十题(12)
根据字典的索引方式可知,d.get( egg ,no this food)索引的是字典第一层,但是第一层只有键food,没有键egg,故索引不出值,输出的是“no this food ”。 外层for循环是将a[0][1,2,3],a[1][4,5,6],a[2][7,8,9]依次赋给变量…...
Podman 学习总结
Podman 概述 什么是 Podman? Podman(Pod Manager)是一个开源的容器管理工具,类似于 Docker,可以用于拉取、运行、管理容器镜像。Podman 采用 无守护进程****(Daemonless) 的架构,使…...
作业14 (2023-05-22_const修饰指针)
第1题/共5题【单选题】 C程序常见的错误分类不包含:( ) A.编译错误 B.链接错误 C.栈溢出 D.运行时错误 回答正确 答案解析: 栈溢出是运行时错误的一种,因此C程序不会将栈溢出错误单独列出来,栈溢出包含在运行时错误中。 因此:选择C 第2题/共5题【单选题】 以下关于…...
Qt 线程和 QObjects
线程和 QObjects QThread 继承于 QObject。 它发出信号来指示线程开始或结束执行,并提供一些插槽。 更有趣的是,QObjects 可以在多个线程中使用,发出信号以调用其他线程中的插槽,并向 "生活 "在其他线程中的对象发布事件…...
cocos creator 笔记-路边花草
版本:3.8.5 实现目标:给3d道路生成路边景观花草 在场景下创建一个节点,我这里种植两种花草模型,兰花和菊花,所以分别在节点下另创建两个节点,为了静态合批。 1.将花草模型分别拖入场景中,制作…...
基于SpringBoot+Vue3实现的宠物领养管理平台功能十六
一、前言介绍: 1.1 项目摘要 随着社会经济的发展和人们生活水平的提高,越来越多的人开始关注并参与到宠物领养中。宠物已经成为许多家庭的重要成员,人们对于宠物的关爱和照顾也日益增加。然而,传统的宠物领养流程存在诸多不便&a…...
MOSN(Modular Open Smart Network)-05-MOSN 平滑升级原理解析
前言 大家好,我是老马。 sofastack 其实出来很久了,第一次应该是在 2022 年左右开始关注,但是一直没有深入研究。 最近想学习一下 SOFA 对于生态的设计和思考。 sofaboot 系列 SOFAStack-00-sofa 技术栈概览 MOSN(Modular O…...
数据仓库pinia中,getter和actions有什么区别
将计算逻辑放在 getters 还是 actions 里,取决于具体的使用场景和需求,下面详细分析放在 getters 中的优势以及和 actions 的区别,以说明是否有必要放在 getters 里: 1. getters 的优势 缓存特性 getters 具有类似 Vue 计算属性…...
RoMA: 基于Mamba的遥感基础模型, 已开源, 首次验证mamba的scaling能力
Time: 2025-03-27T15:27:00 github: 链接 HuggingFace: 链接 摘要 近年来,自监督学习在视觉 Transformer(ViT)方面的进展推动了遥感(RS)基础模型的突破。然而,自注意力机制的二次复杂度给可扩展性带来了…...
蓝桥杯(电子类)嵌入式第十一届设计与开发科目模拟试题
一、功能概览 二、分模块实现 1、按键 新建interrupt.h和interrupt.c写中断的代码(写法学习来自定时器-按键单击_哔哩哔哩_bilibili) #ifndef __INTERRUPT_H #define __INTERRUPT_H#include "main.h" #include "stdbool.h"struct…...
CMLINK APN 手动设置
以下是针对 CMLINK 的 APN设置 的详细指南,基于常见配置需求: CMLINK APN 手动设置参数 参数项值说明名称CMLINK (自定义)任意命名(如 CMLINK、CM Internet 等),建议使用ASCII字符,无特殊符号。APNcm.com …...
排序--快排--非递归法
一,引言 快排不管是hoare法还是指针法以及挖坑法,最终都是利用函数递归进行实现的,但是只要是函数递归就会有栈溢出的风险,为此本篇文章讲解快排的非递归法。 二,代码逻辑 首先要了解为什么会使用递归进行调用&…...
02 相机标定相关坐标系
标定相关坐标系 一共四个坐标系 图像像素坐标系: u-v,图像左上角为原点图像物理坐标系: x-y,图像中心为原点...
数学建模:MATLAB卷积神经网络
一、简述 卷积神经网络是一种处理具有网格结构数据的深度学习模型,由输入层、卷积层、池化层、全连接层、输出层组成。 输出层:将图像转换为其对应的由像素值构成的二维矩阵,并存储二维矩阵 卷积层:提取图像的底层特征…...
Android读写权限分析
Android系统使用的是Linux内核,所以Android系统沿用了linux系统的那一套文件读写权限。 目录 1,权限解读1.1,权限分为三种类型:1.2,权限针对的三类对象:1.3,文件和目录的权限区别1.3.1…...
计算机网络基础:量子通信技术在网络中的应用前景
计算机网络基础:量子通信技术在网络中的应用前景 一、前言二、量子通信技术基础2.1 量子通信的基本概念2.2 量子通信的主要原理2.2.1 量子密钥分发(QKD)原理2.2.2 量子隐形传态原理三、量子通信技术的特点3.1 绝对安全性3.2 超高通信速率潜力3.3 抗干扰能力强四、量子通信技…...
【算法学习计划】贪心算法(上)
目录 前言(什么是贪心) leetcode 860.柠檬水找零 leetcode 2208.将数组和减半的最少操作次数 leetcode 179.最大数 leetcode 376.摆动序列 leetcode 300.最长递增子序列 leetcode 334.递增的三元子序列 leetcode 674.最长连续递增序列 leetcode …...
Linux 目录结构(文件系统结构)示例说明
在Linux操作系统中,文件系统的结构是理解系统性能及管理的重要基础。每个目录都有它的特定用途,这使得系统管理更加清晰和高效。本文将带您逐步了解每一个重要目录及其功能。 1. 根目录 / 根目录是Linux文件系统的起点,所有文件和目录均从此…...
Linux下的socket演示程序2
server.cpp #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h>#define SER_PORT 8888 //服务器端口号 #define SER_IP "10.148.4.168" //服…...
TiDB与Doris实操对比:深度剖析数据库选型要点
TiDB与Doris实操对比:深度剖析数据库选型要点 宝子们,在大数据处理的广阔天地里,TiDB和Doris都是备受瞩目的数据库解决方案。它们各自有着独特的优势和适用场景,对于我们开发者来说,深入了解它们的实操特性࿰…...
How to install vmware workstation pro on Linux mint 22
概述 VMware 是一家专注于虚拟化技术和云计算解决方案的全球领先软件公司,成立于1998年,总部位于美国加州。它的核心技术是通过“虚拟化”将一台物理计算机的硬件资源(如CPU、内存、存储等)分割成多个独立的虚拟环境(…...
redis常用部署架构之redis分片集群。
redis 3.x版本后开始支持 作用: 1.提升数据读写速度 2..提升可用性 分片集群就是将业务服务器产生的数据储存在不同的机器上。 redis分片集群的架构 如上图所示,会将数据分散存储到不同的服务器上,相比于之前来说,redis要处…...
vim的一般操作(分屏操作) 和 Makefile 和 gdb
目录 一. vim的基本概念 二. vim基础操作 2.1 插入模式 aio 2.2 [插入模式]切换至[正常模式] Esc 2.3[正常模式]切换至[末行模式] shift ; 2.4 替换模式 Shift R 2.5 视图(可视)模式 (可以快速 删除//注释 或者 增加//注释) ctrl v 三&…...
DeepSeek 为何能在短时间内超过 ChatGPT?—— 技术变革与成本重构的双重胜利
2025 年 1 月 27 日,全球科技圈见证了一个历史性时刻:中国 AI 公司深度求索(DeepSeek)开发的同名应用,首次登顶美国苹果 App Store 免费下载榜,超越了长期霸榜的 ChatGPT。这一突破不仅打破了美国科技公司在…...
Wireshark学习
Wireshark简介 抓包前 1.打开wireshark得到下面的界面 2.选择菜单栏上捕获-> 选项,勾选WLAN网卡(这里需要根据各自电脑网卡使用情况选择,简单的办法可以看使用的IP对应的网卡)。点击开始。启动抓包。 3.wireshark启动后&am…...
我的创作纪念日——三周年
大家好,心心念念的三年之气已到,但是我似乎对于博客专家的身份没有那么渴望了哈哈。虽然最近比较忙,但是看到三周年纪念日的通知,还是想写一点什么,并不是因为三周年有多么值得纪念,而是这段时间确实有一些…...
Softmax 回归 + 损失函数 + 图片分类数据集
Softmax 回归 softmax 回归是机器学习另外一个非常经典且重要的模型,是一个分类问题。 下面先解释一下分类和回归的区别: 简单来说,分类问题从回归的单输出变成了多输出,输出的个数等于类别的个数。 实际上,对于分…...
基于云服务器的数仓搭建-hive/spark安装
mysql本地安装 安装流程(内存占用200M,升至2.1G) # 将资料里mysql文件夹及里面所有内容上传到/opt/software/mysql目录下 mkdir /opt/software/mysql cd /opt/software/mysql/ # 待上传文件 install_mysql.sh mysql-community-client-8.0.3…...
YOLO历代发展 图像增强方式 架构
YOLO1 YOLOV5 数据增强 mosaic 仿射变换(Affine)、透视变换(Perspective) 网络搭建...