当前位置: 首页 > article >正文

Redis-6.2.9 cluster集群部署和扩容缩容

目录

1 操作系统信息和redis软件版本

2 redis集群架构

3 redis软件安装

4 cluster创建

6 Redis集群节点扩容

7 redis集群节点缩容节点


1 操作系统信息和redis软件版本


root@u24-redis-120:~# cat /etc/issue
Ubuntu 24.04.2 LTS \n \l

root@u24-redis-120:~# redis-server --version
Redis server v=6.2.9 sha=00000000:0 malloc=libc bits=64 build=56edd385f7ce4c9b


2 redis集群架构


192.168.254.130 u24-redis-cluster-130  
192.168.254.131 u24-redis-cluster-131
192.168.254.132 u24-redis-cluster-132
192.168.254.133 u24-redis-cluster-133
192.168.254.134 u24-redis-cluster-134
192.168.254.135 u24-redis-cluster-135


3 redis软件安装


cd /usr/local/
rsync -r redis-6.2.9 192.168.254.130:/usr/local/
rsync -r redis-6.2.9 192.168.254.131:/usr/local/
rsync -r redis-6.2.9 192.168.254.132:/usr/local/
rsync -r redis-6.2.9 192.168.254.133:/usr/local/
rsync -r redis-6.2.9 192.168.254.134:/usr/local/
rsync -r redis-6.2.9 192.168.254.135:/usr/local/

rsync -r /redis 192.168.254.130:/
rsync -r /redis 192.168.254.131:/
rsync -r /redis 192.168.254.132:/
rsync -r /redis 192.168.254.133:/
rsync -r /redis 192.168.254.134:/
rsync -r /redis 192.168.254.135:/


#生成配置文件

root@u24-redis-cluster-130:/usr/local/redis-6.2.9/etc# cat redis.conf 
bind 0.0.0.0
daemonize yes
pidfile "/redis/data/redis_6379.pid"
loglevel notice
logfile "/redis/log/redis_6379.log"
databases 16
dir "/redis/data"
slowlog-log-slower-than 10000
slowlog-max-len 128
hz 10
port 6379
maxmemory 1024mb
protected-mode no
requirepass ""
masterauth ""
cluster-enabled yes
cluster-config-file /redis/data/node_6379.conf
cluster-node-timeout 15000
cluster-replica-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage no

#创建数据目录
mkdir /redis/data -p

#启动
/usr/local/redis-6.2.9/bin/redis-server /usr/local/redis-6.2.9/etc/redis.conf 


4 cluster创建


root@u24-redis-cluster-130:~# redis-cli --cluster create 192.168.254.130:6379 192.168.254.131:6379 192.168.254.132:6379 192.168.254.133:6379 192.168.254.134:6379 192.168.254.135:6379 --cluster-replicas 1

>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 2730
Master[1] -> Slots 2731 - 5460
Master[2] -> Slots 5461 - 8191
Master[3] -> Slots 8192 - 10922
Master[4] -> Slots 10923 - 13652
Master[5] -> Slots 13653 - 16383
M: c4d33de02dd695e614c7c80f54bfb44d4bfb240b 192.168.254.130:6379
   slots:[0-2730] (2731 slots) master
M: cfc24e316a6bc23b97a3fd68528d972b43659ed0 192.168.254.131:6379
   slots:[2731-5460] (2730 slots) master
M: 4a6780ce6c32d006d2ee852f21e79675fcd31954 192.168.254.132:6379
   slots:[5461-8191] (2731 slots) master
M: fb65a73fe84f887a90818bcdd77613b348ccd25c 192.168.254.133:6379
   slots:[8192-10922] (2731 slots) master
M: eca9f2ac4b9dcaf5efbbca3309d3b47fbadf3c93 192.168.254.134:6379
   slots:[10923-13652] (2730 slots) master
M: 2014984ad5965d86cde4e05ff31e8328017cfb59 192.168.254.135:6379
   slots:[13653-16383] (2731 slots) master
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
..
>>> Performing Cluster Check (using node 192.168.254.130:6379)
M: c4d33de02dd695e614c7c80f54bfb44d4bfb240b 192.168.254.130:6379
   slots:[0-2730] (2731 slots) master
M: fb65a73fe84f887a90818bcdd77613b348ccd25c 192.168.254.133:6379
   slots:[8192-10922] (2731 slots) master
M: 2014984ad5965d86cde4e05ff31e8328017cfb59 192.168.254.135:6379
   slots:[13653-16383] (2731 slots) master
M: cfc24e316a6bc23b97a3fd68528d972b43659ed0 192.168.254.131:6379
   slots:[2731-5460] (2730 slots) master
M: 4a6780ce6c32d006d2ee852f21e79675fcd31954 192.168.254.132:6379
   slots:[5461-8191] (2731 slots) master
M: eca9f2ac4b9dcaf5efbbca3309d3b47fbadf3c93 192.168.254.134:6379
   slots:[10923-13652] (2730 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

5 集群状态确认
root@u24-redis-cluster-130:~# redis-cli -c -p 6379
127.0.0.1:6379> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:6
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:92
cluster_stats_messages_pong_sent:100
cluster_stats_messages_sent:192
cluster_stats_messages_ping_received:95
cluster_stats_messages_pong_received:92
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:192

#查看集群节点
127.0.0.1:6379> cluster nodes
127.0.0.1:6379> cluster nodes
ecf6cc3169929624950ce63236f5afc1e1c665b5 192.168.254.135:6379@16379 slave d9acf5707b83327823821af32ea2d1a086cba158 0 1748858042000 2 connected
d9acf5707b83327823821af32ea2d1a086cba158 192.168.254.131:6379@16379 master - 0 1748858044000 2 connected 5461-10922
f071e51d0ff633646c06093d35754660cbf84bce 192.168.254.134:6379@16379 slave 3fee102c315725c026bf22a121106afd68ef32e6 0 1748858045990 1 connected
696a28cff730ee330b1ce5beec6838de2c9b0078 192.168.254.133:6379@16379 slave 2384a769403ad53bdf85133d97e26008ffa7482b 0 1748858044000 3 connected
2384a769403ad53bdf85133d97e26008ffa7482b 192.168.254.132:6379@16379 master - 0 1748858044978 3 connected 10923-16383
3fee102c315725c026bf22a121106afd68ef32e6 192.168.254.130:6379@16379 myself,master - 0 1748858043000 1 connected 0-5460


6 Redis集群节点扩容


#新增master节点 92.168.254.136:6379
redis-cli  --cluster add-node 192.168.254.136:6379 192.168.254.130:6379
192.168.254.136:6379 #新增集群主机
192.168.254.130:6379 #集群任意一个节点,用来识别这一个集群

#集群重新分配sharding
root@u24-redis-cluster-130:~# redis-cli --cluster reshard 192.168.254.136:6379
>>> Performing Cluster Check (using node 192.168.254.136:6379)
M: 31a292170ed634451bfc5aca7ce030145e95516e 192.168.254.136:6379
   slots: (0 slots) master
S: 696a28cff730ee330b1ce5beec6838de2c9b0078 192.168.254.133:6379
   slots: (0 slots) slave
   replicates 2384a769403ad53bdf85133d97e26008ffa7482b
M: 2384a769403ad53bdf85133d97e26008ffa7482b 192.168.254.132:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
M: 3fee102c315725c026bf22a121106afd68ef32e6 192.168.254.130:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: d9acf5707b83327823821af32ea2d1a086cba158 192.168.254.131:6379
   slots: (0 slots) slave
   replicates ecf6cc3169929624950ce63236f5afc1e1c665b5
M: ecf6cc3169929624950ce63236f5afc1e1c665b5 192.168.254.135:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: f071e51d0ff633646c06093d35754660cbf84bce 192.168.254.134:6379
   slots: (0 slots) slave
   replicates 3fee102c315725c026bf22a121106afd68ef32e6
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 4095   #一般16384/mster节点数
What is the receiving node ID? 
What is the receiving node ID? 31a292170ed634451bfc5aca7ce030145e95516e
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1: all  #输入all

#验证信息
127.0.0.1:6379> cluster nodes
31a292170ed634451bfc5aca7ce030145e95516e 192.168.254.136:6379@16379 master - 0 1748860504914 8 connected 0-1363 5461-6826 10923-12286

#新增slave节点(192.168.254.137:6379)
 redis-cli --cluster add-node 192.168.254.137:6379 192.168.254.130:6379 --cluster-slave --cluster-master-id 3fee102c315725c026bf22a121106afd68ef32e6


 127.0.0.1:6379> cluster nodes
ef408d07caf5e200a011df0db0ed2148a5835d9c 192.168.254.137:6379@16379 slave 31a292170ed634451bfc5aca7ce030145e95516e 0 1748860823000 8 connected


7 redis集群节点缩容节点


#获取node节点slot 数量方法
root@u24-redis-cluster-130:~# vi slots.sh 
#!/bin/bash

# 连接到集群获取节点信息
cluster_info=$(redis-cli -c -h 192.168.254.136 -p 6379 CLUSTER NODES)

# 解析并统计槽分布
echo "$cluster_info" | awk '
BEGIN { print "节点ID\t\tIP:端口\t\t角色\t槽数量" }
/myself|master/ && /connected/ {
    slot_count = 0
    # 提取槽范围信息
    for(i=9; i<=NF; i++) {
        if($i ~ /^[0-9]+-[0-9]+$/) {
            split($i, range, "-")
            slot_count += range[2] - range[1] + 1
        }
        else if($i ~ /^[0-9]+$/) {
            slot_count += 1
        }
    }
    printf "%.8s\t%s\t%s\t%d\n", $1, $2, $3, slot_count+1
}'

root@u24-redis-cluster-130:~# ./slots.sh 
节点ID          IP:端口         角色    槽数量
2384a769        192.168.254.132:6379@16379      master  4098
3fee102c        192.168.254.130:6379@16379      master  4098
ecf6cc31        192.168.254.135:6379@16379      master  4097
31a29217        192.168.254.136:6379@16379      myself,master   4095 


#清空master的slot
root@u24-redis-cluster-130:~# redis-cli -c -p 6379 
127.0.0.1:6379> cluster nodes
ecf6cc3169929624950ce63236f5afc1e1c665b5 192.168.254.135:6379@16379 master - 0 1748866864000 7 connected 6827-10922
d9acf5707b83327823821af32ea2d1a086cba158 192.168.254.131:6379@16379 slave ecf6cc3169929624950ce63236f5afc1e1c665b5 0 1748866864978 7 connected
f071e51d0ff633646c06093d35754660cbf84bce 192.168.254.134:6379@16379 slave 3fee102c315725c026bf22a121106afd68ef32e6 0 1748866864000 9 connected
696a28cff730ee330b1ce5beec6838de2c9b0078 192.168.254.133:6379@16379 slave 2384a769403ad53bdf85133d97e26008ffa7482b 0 1748866864000 3 connected
2384a769403ad53bdf85133d97e26008ffa7482b 192.168.254.132:6379@16379 master - 0 1748866862912 3 connected 12287-16383
31a292170ed634451bfc5aca7ce030145e95516e 192.168.254.136:6379@16379 master 3fee102c315725c026bf22a121106afd68ef32e6 0 1748866866004 9 connected
ef408d07caf5e200a011df0db0ed2148a5835d9c 192.168.254.137:6379@16379 slave 3fee102c315725c026bf22a121106afd68ef32e6 0 1748866859857 9 connected
3fee102c315725c026bf22a121106afd68ef32e6 192.168.254.130:6379@16379 myself,master - 0 1748866861000 9 connected 0-6826 10923-12286


root@u24-redis-cluster-130:~# redis-cli --cluster reshard 192.168.254.130:6379 --cluster-from 31a292170ed634451bfc5aca7ce030145e95516e --cluster-to ecf6cc3169929624950ce63236f5afc1e1c665b5 2384a769403ad53bdf85133d97e26008ffa7482b 3fee102c315725c026bf22a121106afd68ef32e6    --cluster-slots 4095 --cluster-yes

#删除从节点(192.168.254.137:6379)
redis-cli --cluster del-node 192.168.254.136:6379 ef408d07caf5e200a011df0db0ed2148a5835d9c

#删除主节点(192.168.254.136:6379)
redis-cli --cluster del-node 192.168.254.136:6379 31a292170ed634451bfc5aca7ce030145e95516e

#平衡节点
redis-cli --cluster rebalance 192.168.254.130:6379


#缩容验证信息
127.0.0.1:6379> cluster nodes
ecf6cc3169929624950ce63236f5afc1e1c665b5 192.168.254.135:6379@16379 master - 0 1748867517494 10 connected 0-1365 6827-10922
d9acf5707b83327823821af32ea2d1a086cba158 192.168.254.131:6379@16379 slave ecf6cc3169929624950ce63236f5afc1e1c665b5 0 1748867517000 10 connected
f071e51d0ff633646c06093d35754660cbf84bce 192.168.254.134:6379@16379 slave 3fee102c315725c026bf22a121106afd68ef32e6 0 1748867519516 9 connected
696a28cff730ee330b1ce5beec6838de2c9b0078 192.168.254.133:6379@16379 slave 2384a769403ad53bdf85133d97e26008ffa7482b 0 1748867517000 11 connected
2384a769403ad53bdf85133d97e26008ffa7482b 192.168.254.132:6379@16379 master - 0 1748867518503 11 connected 1366-2729 12287-16383
3fee102c315725c026bf22a121106afd68ef32e6 192.168.254.130:6379@16379 myself,master - 0 1748867515000 9 connected 2730-6826 10923-12286

已经删除192.168.254.136:6379和192.168.254.137:6379
 

相关文章:

Redis-6.2.9 cluster集群部署和扩容缩容

目录 1 操作系统信息和redis软件版本 2 redis集群架构 3 redis软件安装 4 cluster创建 6 Redis集群节点扩容 7 redis集群节点缩容节点 1 操作系统信息和redis软件版本 rootu24-redis-120:~# cat /etc/issue Ubuntu 24.04.2 LTS \n \l rootu24-redis-120:~# redis-server…...

Java求职者面试指南:DevOps技术栈深度解析

Java求职者面试指南&#xff1a;DevOps技术栈深度解析 一、基础概念问题 1. 请解释什么是Docker&#xff1f; Docker是一个开源的应用容器引擎&#xff0c;它允许开发者将应用程序及其依赖打包到一个可移植的容器中&#xff0c;然后在任何支持Docker的环境中运行。Docker的核…...

生产环境中安装和配置 Nginx 以部署 Flask 应用的详细指南

在生产环境中部署 Flask 应用时&#xff0c;Nginx 常被用作反向代理服务器&#xff0c;与 WSGI 服务器&#xff08;如 Gunicorn&#xff09;协同工作。Nginx 可以处理静态文件、提供 SSL/TLS 加密、实现负载均衡等功能。本文将详细介绍如何在 Ubuntu/Debian 系统上安装 Nginx&a…...

Axure高保真LayUI框架 V2.6.8元件库

点击下载《Axure高保真LayUI框架 V2.6.8元件库》 原型效果&#xff1a;https://axhub.im/ax9/bf36e6dd89bc4c9f/#g1 摘要 本文详细阐述了在 Axure 环境下打造的一套高度还原 LayUI 框架的组件元件集。通过对 LayUI 框架组件的深入剖析&#xff0c;结合 Axure 的强大功能&…...

通讯录实现(Linux+Cpp)

通讯录实现&#xff08;LinuxCpp&#xff09; 产品底层思考&#xff1a; 人员如何存储 -> 链表 &#xff08;增删改 但是排序不适合&#xff09; 文件存储 -> 人员数据的格式 name:xxx,phone:xxx 人员信息 -> 姓名、电话 引出2 name: xxx,phone: xxx,age: xxx,addr…...

K8S主机漏洞扫描时检测到kube-服务目标SSL证书已过期漏洞的一种永久性修复方法

1、背景 PaaS平台102xx、102xx端口检测到目标SSL证书已过期漏洞&#xff0c;分别对应kube-controller-manager证书、kube-scheduler证书。 2、系统版本 1.0、2.0版本均涉及。 k8s 1.19、1.23版本均涉及。 3、故障现象 PaaS平台部署1年以后&#xff0c;在主机漏洞扫描时&a…...

质检 LIMS 系统数据防护指南 三级等保认证与金融级加密方案设计

面对频发的数据泄露事件&#xff0c;企业亟需构建一套 “防得住、追得回、打得赢” 的防护体系。质检 LIMS 系统通过三级等保认证与金融级加密的结合&#xff0c;为这一目标提供了可行路径。 一、金融级加密&#xff1a;构建数据防护的 “铜墙铁壁” 金融级加密技术通过协议加密…...

Spring Boot 从Socket 到Netty网络编程(上):SOCKET 基本开发(BIO)与改进(NIO)

前言 无论是软件还是硬件的本质都是要解决IO问题&#xff08;输入、输出&#xff09;&#xff0c;再说回网络编程本质上都是基于TCP/UP的开发&#xff0c;socket是在此基础上做的扩展与封装&#xff0c;而Netty又是对socket做的封装。本文旨在通过相关案例对socket进行探讨。 一…...

79. Word Search

题目描述 79. Word Search 回溯 代码一&#xff0c;使用used数组 class Solution {vector<pair<int,int>> directions{{0,1},{0,-1},{1,0},{-1,0}};vector<vector<bool>> used; public:bool exist(vector<vector<char>>& board, st…...

结构性设计模式之Facade(外观)设计模式

结构性设计模式之Facade&#xff08;外观&#xff09;设计模式 前言&#xff1a; 外观模式&#xff1a;用自己的话理解就是用户看到是一个总体页面&#xff0c;比如xx报名系统页面。里面有历年真题模块、报名模块、教程模块、首页模块… 做了一个各个模块的合并&#xff0c;对…...

ICML 2025 Spotlight | 机器人界的「Sora」!让机器人实时进行未来预测和动作执行!

标题&#xff1a;Video Prediction Policy: A Generalist Robot Policy with Predictive Visual Representations 作者&#xff1a;Yucheng Hu, Yanjiang Guo, Pengchao Wang, Xiaoyu Chen, Yen-Jen Wang, Jianke Zhang, Koushil Sreenath, Chaochao Lu, Jianyu Chen 机构&am…...

CSP严格模式返回不存在的爬虫相关文件

文章目录 说明示例&#xff08;返回404&#xff09;示例&#xff08;创建CSP例外&#xff09; 说明 日期&#xff1a;2025年6月4日。 CSP严格模式是default-src none&#xff0c;但有些web应用中&#xff0c;在爬虫相关文件不存在的情况下&#xff0c;依旧返回了对应文件&…...

https(SSL)证书危机和可行的解决方案

证书危机 20250411,CAB 论坛服务器证书工作组&#xff08; SCWG &#xff09;投票通过一项重大提案《 SC-081v3: 引入缩短有效期和数据重复使用期的时间表》&#xff0c;最终决定&#xff1a;从 2026 年起 SSL/TLS 证书的最大有效期将从 398 天逐步缩短至 47 天&#xff0c;并…...

C#获取磁盘容量:代码实现与应用场景解析

C#获取磁盘容量&#xff1a;代码实现与应用场景解析 在软件开发过程中&#xff0c;尤其是涉及文件存储、数据备份等功能时&#xff0c;获取磁盘容量信息是常见的需求。通过获取磁盘的可用空间和总大小&#xff0c;程序可以更好地进行资源管理、预警提示等操作。在 C# 语言中&a…...

2359. 找到离给定两个节点最近的节点

2359. 找到离给定两个节点最近的节点 题目链接&#xff1a;2359. 找到离给定两个节点最近的节点 代码如下&#xff1a; class Solution { public:int closestMeetingNode(vector<int>& edges, int node1, int node2) {auto calc_dis [&](int x) {vector<in…...

前端导入Excel表格

前端如何在 Vue 3 中导入 Excel 文件&#xff08;.xls 和 .xlsx&#xff09;&#xff1f; 在日常开发中&#xff0c;我们经常需要处理 Excel 文件&#xff0c;比如导入数据表格、分析数据等。文章将在 Vue 3 中实现导入 .xls 和 .xlsx 格式的文件&#xff0c;并解析其中的数据…...

AI生态警报:MCP协议风险与应对指南(下)——MCP Host安全

AI生态警报&#xff1a;MCP协议风险与应对指南&#xff08;上&#xff09;——架构与供应链风险https://blog.csdn.net/WangsuSecurity/article/details/148335401?sharetypeblogdetail&sharerId148335401&sharereferPC&sharesourceWangsuSecurity&spm1011.24…...

基于VLC的Unity视频播放器(四)

上篇文章中提到的问题 播放某个m3u8地址时会嘎掉&#xff0c;想办法解决了一下&#xff0c;很粗暴的&#xff0c;先SetFormat&#xff0c;再Stop&#xff0c;最后再Play&#xff0c;能用…… if (player ! null && player.GetSize() 0) {player.GetSize((w, h) >…...

pixel刷入Android15 userdebug版本

最近入手一个pixel7,想着刷个userdebug版本&#xff0c;就不用模拟器调试开发了&#xff0c;结果按照网上的教程&#xff0c;每次刷机后都是卡在goole logo界面&#xff0c;卡了一天多我才找到问题所在&#xff0c;想着记录下&#xff0c;给自己做个备份。 1. 前期准备&#x…...

【Go-补充】ioReader + ioWriter + bufio

一、io.Reader 和 io.Writer 接口介绍 在 Go 语言中&#xff0c;io 包定义了两个最基础和最重要的接口&#xff1a;io.Reader 和 io.Writer。它们是 Go 语言中进行输入/输出操作的核心抽象&#xff0c;实现了极大的灵活性和可组合性。 io.Reader 接口 io.Reader 接口定义了一…...

leetcode 3403. 从盒子中找出字典序最大的字符串 I 中等

给你一个字符串 word 和一个整数 numFriends。 Alice 正在为她的 numFriends 位朋友组织一个游戏。游戏分为多个回合&#xff0c;在每一回合中&#xff1a; word 被分割成 numFriends 个 非空 字符串&#xff0c;且该分割方式与之前的任意回合所采用的都 不完全相同 。所有分…...

C# 一个解决方案放一个dll项目,一个dll测试项目 ,调试dll项目的源码

一个解决方案&#xff08;sln&#xff09;中放入2个项目(project&#xff0c;通常是一个文件夹)&#xff0c;一个dll项目&#xff0c;一个dll测试项目 右键dll测试项目&#xff0c;设为启动项目。 在dll测试项目添加引用 1&#xff09;右键测试项目 → 添加 → 引用 → 项目…...

【PmHub面试篇】PmHub 整合 TransmittableThreadLocal(TTL)缓存用户数据面试专题解析

你好&#xff0c;欢迎来到本次关于PmHub整合TransmittableThreadLocal (TTL)缓存用户数据的面试系列分享。在这篇文章中&#xff0c;我们将深入探讨这一技术领域的相关面试题预测。若想对相关内容有更透彻的理解&#xff0c;强烈推荐参考之前发布的博文&#xff1a;【PmHub后端…...

unity随机生成未知符号教程

目录 前言方法1方法2脚本后言示例代码 前言 在某些游戏中&#xff0c;有一些让人感到意味不明的未知符号&#xff0c;例如在游戏《巴别塔圣歌》中&#xff0c;就有这样一些能让人在初次就看不懂的未知符号。 或者在其他时候&#xff0c;这些未知符号如果跟粒子系统结合在一起的…...

基于RK3576+FPGA+AI工业控制器的工地防护检测装备解决方案

1.2.1 工地防护检测技术研究现状 在建筑施工的过程中&#xff0c;工人被要求暴露在危险的环境中作业 [2]。因此&#xff0c;防护装备 对于工人的安全与健康具有非常重要的意义[3]。工地工人必须佩戴适当的防护装备&#xff0c; 以降低意外伤害的风险。在过去的几十年里&#x…...

推荐一款PDF压缩的工具

今天一位小伙伴找来&#xff0c;问我有没有办法将PDF变小的办法。 详细了解了一下使用场景&#xff1a; 小伙伴要在某系统上传一个PDF文件&#xff0c;原文件是11.6MB&#xff0c;但是上传时系统做了限制&#xff0c;只能上传小于10MB的文件&#xff0c;如图&#xff1a; 我听…...

混沌映射(Chaotic Map)

一.定义 混沌映射是指一类具有混沌行为的离散时间非线性动力系统&#xff0c;通常由递推公式定义。其数学形式为 &#xff0c;其中 f 是非线性函数&#xff0c;θ 为参数。它们以简单的数学规则生成复杂的、看似随机的轨迹&#xff0c;是非线性动力学和混沌理论的重要研究对象…...

MySQL对数据库用户的操作

注&#xff1a;‘%’&#xff1a;表示允许远程连接&#xff0c;‘localhost’ &#xff1a;限制本地登陆 – 根据用户名、权限查询用户 SELECT USER FROM mysql.user WHERE USER‘your_name’ AND HOST‘%’; – 彻底删除用户 DROP USER ‘appuser’‘%’; – 刷新使其生效 FL…...

《PyTorch Hub:解锁深度学习模型的百宝箱》

走进 PyTorch Hub 在当今的深度学习领域,模型的复用和共享已成为推动技术飞速发展的关键力量。随着深度学习在计算机视觉、自然语言处理、语音识别等众多领域取得突破性进展,研究人员和开发者们不断探索更高效、更强大的模型架构。然而,从头开始训练一个深度学习模型往往需要…...

数据结构 堆与优先级队列

文章目录 &#x1f4d5;1. 堆(Heap)✏️1.1 堆的概念✏️1.2 堆的存储方式✏️1.3 堆的创建✏️1.4 堆的插入✏️1.5 堆的删除 &#x1f4d5;2. 优先级队列(PriorityQueue)✏️2.1 堆与优先级队列的关系✏️2.2 优先级队列的构造方法✏️2.3 优先级队列的常用方法 3. Java对象的…...