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

【Redis集群】使用docker compose创建docker集群,并暴露外部接口

使用 Docker Compose 创建一个 Redis 集群并暴露外部接口需要配置 docker-compose.yml 文件。以下是一个基本的步骤,包括 Redis 集群的创建和外部接口的暴露。

1、创建 docker-compose.yml

首先,您需要创建一个 docker-compose.yml 文件,配置 Redis 服务。这里是一个创建 Redis 集群的示例:

version: '3'services:redis-1:image: redis:latestcontainer_name: redis-1ports:- "7001:6379"  # 暴露端口7001,内部端口6379- "17001:16379"volumes:- ./redis-1.conf:/usr/local/etc/redis/redis.conf  # 挂载自定义配置command: redis-server /usr/local/etc/redis/redis.confnetworks:- redis-netrestart: alwaysredis-2:image: redis:latestcontainer_name: redis-2ports:- "7002:6379"  # 暴露端口7002,内部端口6379- "17002:16379"volumes:- ./redis-2.conf:/usr/local/etc/redis/redis.confcommand: redis-server /usr/local/etc/redis/redis.confnetworks:- redis-netrestart: alwaysredis-3:image: redis:latestcontainer_name: redis-3ports:- "7003:6379"  # 暴露端口7003,内部端口6379- "17003:16379"volumes:- ./redis-3.conf:/usr/local/etc/redis/redis.confcommand: redis-server /usr/local/etc/redis/redis.confnetworks:- redis-netrestart: alwaysredis-4:image: redis:latestcontainer_name: redis-4ports:- "7101:6379"  # 暴露端口7003,内部端口6379- "17101:16379"volumes:- ./redis-4.conf:/usr/local/etc/redis/redis.confcommand: redis-server /usr/local/etc/redis/redis.confnetworks:- redis-netrestart: alwaysredis-5:image: redis:latestcontainer_name: redis-5ports:- "7102:6379"  # 暴露端口7004,内部端口6379- "17102:16379"volumes:- ./redis-5.conf:/usr/local/etc/redis/redis.confcommand: redis-server /usr/local/etc/redis/redis.confnetworks:- redis-netrestart: alwaysredis-6:image: redis:latestcontainer_name: redis-6ports:- "7103:6379"  # 暴露端口7005,内部端口6379- "17103:16379"volumes:- ./redis-6.conf:/usr/local/etc/redis/redis.confcommand: redis-server /usr/local/etc/redis/redis.confnetworks:- redis-netrestart: alwaysnetworks:redis-net:driver: bridge
  • 创建 Redis 服务:在该 docker-compose.yml 文件中,我们定义了 6 个 Redis 实例(redis-1, redis-2, …, redis-6),每个实例都运行一个 Redis 容器,并且映射外部端口(7001-7003,7101~7103)到内部端口 6379。
  • 挂载配置文件:每个 Redis 服务都挂载了自定义的 redis.conf 配置文件。您可以根据需要在该配置文件中设置集群相关的配置(如启用集群、设置密码等)。
  • 设置集群网络:所有 Redis 实例都在 redis-net 网络下运行,这意味着它们可以互相通信。
  • 暴露外部接口:通过 ports 配置将 Redis 容器的端口映射到宿主机端口,使外部可以通过宿主机 IP 访问 Redis 服务。
  • 自动重启:容器设置为自动重启,以保证 Redis 服务持续运行。

2、 配置文件

redis-1.conf

# 启用集群模式
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000# 设置 AOF 持久化
appendonly yes# 设置密码
requirepass 123123
masterauth 123123# 关闭保护模式,允许外部访问
protected-mode no# 在集群模式下,指定外部 IP 和端口
cluster-announce-ip 192.168.188.101
cluster-announce-port 7001
cluster-announce-bus-port 17001# 启用连接的最大客户端数
maxclients 10000

redis-2.conf

# 启用集群模式
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000# 设置 AOF 持久化
appendonly yes# 设置密码
requirepass 123123
masterauth 123123# 关闭保护模式,允许外部访问
protected-mode no# 在集群模式下,指定外部 IP 和端口
cluster-announce-ip 192.168.188.101
cluster-announce-port 7002
cluster-announce-bus-port 17002# 启用连接的最大客户端数
maxclients 10000

redis-3.conf

# 启用集群模式
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000# 设置 AOF 持久化
appendonly yes# 设置密码
requirepass 123123
masterauth 123123# 关闭保护模式,允许外部访问
protected-mode no# 在集群模式下,指定外部 IP 和端口
cluster-announce-ip 192.168.188.101
cluster-announce-port 7003
cluster-announce-bus-port 17003# 启用连接的最大客户端数
maxclients 10000

redis-4.conf

# 启用集群模式
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000# 设置 AOF 持久化
appendonly yes# 设置密码
requirepass 123123
masterauth 123123# 关闭保护模式,允许外部访问
protected-mode no# 在集群模式下,指定外部 IP 和端口
cluster-announce-ip 192.168.188.101
cluster-announce-port 7101
cluster-announce-bus-port 17101# 启用连接的最大客户端数
maxclients 10000

redis-5.conf

# 启用集群模式
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000# 设置 AOF 持久化
appendonly yes# 设置密码
requirepass 123123
masterauth 123123# 关闭保护模式,允许外部访问
protected-mode no# 在集群模式下,指定外部 IP 和端口
cluster-announce-ip 192.168.188.101
cluster-announce-port 7102
cluster-announce-bus-port 17102# 启用连接的最大客户端数
maxclients 10000

redis-6.conf

# 启用集群模式
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000# 设置 AOF 持久化
appendonly yes# 设置密码
requirepass 123123
masterauth 123123# 关闭保护模式,允许外部访问
protected-mode no# 在集群模式下,指定外部 IP 和端口
cluster-announce-ip 192.168.188.101
cluster-announce-port 7103
cluster-announce-bus-port 17103# 启用连接的最大客户端数
maxclients 10000

3、 启动集群

docker-compose up -d

4、创建 Redis 集群

启动容器后,您可以通过以下命令连接到容器并创建 Redis 集群:

[root@localhost redis-cluster]# docker exec -it redis-1 redis-cli  -a 123123 --cluster create   192.168.188.101:7001 192.168.188.101:7002 192.168.188.101:7003   192.168.188.101:7101 192.168.188.101:7102 192.168.188.101:7103   --cluster-replicas 1

此命令将会创建一个有 3 个主节点和 3 个副本节点的 Redis 集群。

\Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.188.101:7102 to 192.168.188.101:7001
Adding replica 192.168.188.101:7103 to 192.168.188.101:7002
Adding replica 192.168.188.101:7101 to 192.168.188.101:7003
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 84147aee87f743a6af916d0003ee35ae2555f662 192.168.188.101:7001slots:[0-5460] (5461 slots) master
M: e62aafbdf2bca9d616d0ae9513023d4843d5713c 192.168.188.101:7002slots:[5461-10922] (5462 slots) master
M: f28d1338ab896db913b6154bbef95119b86fc25c 192.168.188.101:7003slots:[10923-16383] (5461 slots) master
S: 7d59a668d0f37d29de8ef1975939737a52363cbb 192.168.188.101:7101replicates f28d1338ab896db913b6154bbef95119b86fc25c
S: 37bde0f815fd4742ec9e7ed70ea36023734af0ff 192.168.188.101:7102replicates 84147aee87f743a6af916d0003ee35ae2555f662
S: 10fe40aff0430597c2157367e53ef0e4dbf09077 192.168.188.101:7103replicates e62aafbdf2bca9d616d0ae9513023d4843d5713c
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.188.101:7001)
M: 84147aee87f743a6af916d0003ee35ae2555f662 192.168.188.101:7001slots:[0-5460] (5461 slots) master1 additional replica(s)
M: f28d1338ab896db913b6154bbef95119b86fc25c 192.168.188.101:7003slots:[10923-16383] (5461 slots) master1 additional replica(s)
S: 7d59a668d0f37d29de8ef1975939737a52363cbb 192.168.188.101:7101slots: (0 slots) slavereplicates f28d1338ab896db913b6154bbef95119b86fc25c
S: 37bde0f815fd4742ec9e7ed70ea36023734af0ff 192.168.188.101:7102slots: (0 slots) slavereplicates 84147aee87f743a6af916d0003ee35ae2555f662
S: 10fe40aff0430597c2157367e53ef0e4dbf09077 192.168.188.101:7103slots: (0 slots) slavereplicates e62aafbdf2bca9d616d0ae9513023d4843d5713c
M: e62aafbdf2bca9d616d0ae9513023d4843d5713c 192.168.188.101:7002slots:[5461-10922] (5462 slots) master1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

输入命令后,输入yes,将执行对应集群创建,看到上面的日志输出说明集群已经搭建完成。

5、验证集群状态

创建集群后,您可以使用以下命令验证集群状态:


docker exec -it redis-1 redis-cli -a 123123 cluster info

如果集群设置成功,应该会看到集群的状态信息。

6、使用外部程序来验证链接

package mainimport ("context""flag""fmt""github.com/redis/go-redis/v9""log""strings"
)func main() {// 定义命令行参数var clusterAddrs stringvar password string// 使用 flag 包解析命令行参数flag.StringVar(&clusterAddrs, "addrs", "192.168.188.101:7001,192.168.188.101:7002,192.168.188.101:7003,192.168.188.101:7101,192.168.188.101:7102,192.168.188.101:7103", "Redis 集群地址")flag.StringVar(&password, "password", "123123", "Redis 集群密码")flag.Parse()// 将集群地址字符串转换为切片addrs := strings.Split(clusterAddrs, ",")// 创建 Redis 集群客户端配置rdb := redis.NewClusterClient(&redis.ClusterOptions{Addrs:    addrs,    // 从命令行参数获取的 Redis 集群地址Password: password, // 从命令行参数获取密码})// 确保 Redis 连接成功ctx := context.Background()err := rdb.Ping(ctx).Err()if err != nil {log.Fatalf("连接到 Redis 失败: %v", err)}fmt.Println("成功连接到 Redis 集群")// 设置一个键值对err = rdb.Set(ctx, "example_key", "Hello Redis", 0).Err()if err != nil {log.Fatalf("设置键值对失败: %v", err)}fmt.Println("成功设置键值对")// 获取一个键的值val, err := rdb.Get(ctx, "example_key").Result()if err != nil {log.Fatalf("获取键值对失败: %v", err)}fmt.Printf("获取到的键值对: %v\n", val)
}

运行main函数
输出:

成功连接到 Redis 集群
成功设置键值对
获取到的键值对: Hello Redis

7、小结

使用 Docker Compose 配置 Redis 集群并暴露外部接口是一个高效的方式。通过 docker-compose.yml 文件,我们定义了多个 Redis 实例并暴露了外部接口,便于从外部进行访问和管理。确保每个 Redis 实例的配置文件正确,特别是集群相关的配置。

相关文章:

【Redis集群】使用docker compose创建docker集群,并暴露外部接口

使用 Docker Compose 创建一个 Redis 集群并暴露外部接口需要配置 docker-compose.yml 文件。以下是一个基本的步骤,包括 Redis 集群的创建和外部接口的暴露。 1、创建 docker-compose.yml 首先,您需要创建一个 docker-compose.yml 文件,配…...

RabbitMq 基础

文章目录 一、初识 MQ1.1 同步调用:1.2 异步调用: 二、RabbitMQ三、SpringAMQP3.1 依赖和配置文件3.2 消息发送和接收:3.2.1 消息发送:3.2.2 消息接收: 3.3 WorkQueues 模型:3.4 交换机类型:3.4…...

类文件结构详解

一、引言 Java 类文件是 Java 虚拟机执行的基本单元。它包含了 Java 程序的字节码以及其他重要的元数据信息。了解类文件结构可以帮助我们更好地理解 Java 程序的编译过程、运行机制以及如何进行优化。 二、类文件结构概述 Java 类文件采用一种紧凑的二进制格式,主…...

01_Linux

一.Linux简介 1.1 Linux介绍 Linux是一套免费使用和自由传播的操作系统。说到操作系 统,大家比较熟知的应该就是Windows和MacOS操作系统, 我们今天所学习的Linux也是一款操作系统 1.2 Linux发展历史 时间:1991年 地点:芬兰赫尔…...

区块链与AI结合:驱动Web3的未来发展

Web3作为下一代互联网的核心理念,强调去中心化、用户主权和透明性。而区块链技术和人工智能(AI)则是推动Web3发展的两大关键力量。两者的结合不仅为Web3带来了新的可能性,还推动了智能化、透明化、自治化等特点的实现。本文将探讨…...

如何解决 docker 容器中 “-bash: ping: command not found” 错误 ?

在 Docker 的世界里,遇到错误是学习曲线的一部分,其中一个常见的错误是: -bash: ping: command not found。当您在 Docker 容器中尝试使用 ping 命令来测试与其他网络机器或服务的连接,但该命令在您的容器环境中不可用时&#xff…...

Leetcode 每日一题 242.有效的字母异位词

目录 问题描述 示例 题目要求 解决方案 算法思路 过题图片 代码实现 算法分析 优化思路 优化后的代码实现 优化后的算法分析 题目链接 问题描述 给定两个字符串 s 和 t,我们需要编写一个函数来判断 t 是否是 s 的字母异位词。字母异位词指的是两个字符串…...

centos7搭建FTP详细讲解

文章目录 1、ftp服务1、工作原理2、工作模式3、身份验证模式4、ftp服务器配置5、ftp客户端操作 1、ftp服务 1、工作原理 ![img](https://img2023.cnblogs.com/blog/3210480/202412/ 3210480-20241208224333047-141845069.png) 是一个cs架构 2个通道,21端口为控制…...

YOLOv8-ultralytics-8.2.103部分代码阅读笔记-build.py

build.py ultralytics\data\build.py 目录 build.py 1.所需的库和模块 2.class InfiniteDataLoader(dataloader.DataLoader): 3.class _RepeatSampler: 4.def seed_worker(worker_id): 5.def build_yolo_dataset(cfg, img_path, batch, data, mode"train"…...

JAVA-动态代理

文章目录 概要两种主要方式JDK 动态代理Proxy 类作用:常用方法: InvocationHandler 接口作用: 目标对象、代理对象、被代理对象JDK 动态代理工作原理 cjlib 动态代理demo 对比 概要 Java 动态代理利用 Java 的反射机制,可以在运行…...

【前端】React_Next.js

定期更新,建议关注、收藏! 安装 要使用react的框架,都应当安装node.js conda install nodejs选择Next.js 并创建项目 npx create-next-applatest可以看到目录结构生成如下 作为网页中的一个子路由 想让其嵌入已经写好的项目中&#xf…...

深入理解malloc与vector:内存管理的对比

引言‌ 在编程中,内存管理是一个至关重要的环节。无论是C语言中的malloc函数,还是C标准库中的vector容器,它们都在内存分配和释放上扮演着关键角色。然而,它们的设计理念和用法有着显著的不同。本文将深入探讨malloc和vector的区…...

LeetCode题练习与总结:四数相加 Ⅱ --454

一、题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&#xff1a;n…...

AI绘画设计实战-Day1

AI绘画变现方向&#xff1a; 生成猫咪拟人化&#xff1b;老照片修复&#xff1b;生成奇幻场景&#xff0c;换上客户的脸&#xff1b;生成商品详情模特图&#xff1b;商品宣传图&#xff1b;建筑/室内设计方案&#xff1b; AI视频-变现方向&#xff1a; AI跳舞视频&#xff…...

【Windows】ImmGetContext函数不适合跨进程工作

1. 教授回复 ChatGPT-o1: ImmGetContext() is not designed to work across process boundaries. It is indicates that a thread should not access the input context created by another thread, which implies that the function is intended for use within the same proc…...

【Linux】进程间通信——System V共享内存

&#x1f525; 个人主页&#xff1a;大耳朵土土垚 &#x1f525; 所属专栏&#xff1a;Linux系统编程 这里将会不定期更新有关Linux的内容&#xff0c;欢迎大家点赞&#xff0c;收藏&#xff0c;评论&#x1f973;&#x1f973;&#x1f389;&#x1f389;&#x1f389; 文章目…...

fastAPI快速使用

1. 安装: pip install fastapi 并且安装uvicorn来作为服务器&#xff1a; pip install uvicorn 最简单的 FastAPI 文件可能像下面这样&#xff1a; # main.pyfrom fastapi import FastAPIapp FastAPI()app.get("/") async def root():return {"message&qu…...

ruoyi前后端不分离创建module

ruoyi创建module 1.创建表 2.在若依中创建module 3.注意选择maven 4.命名 5&#xff0e;把module加入到rouyi的pom.xml中 6.student 中加入common依赖 二.生成代码 2.1先创建目录 2&#xff0e;2导入创建的表 2.3 注意各种配置 2.4预览代码 2.5 生成代码 2.6…...

【AI日记】24.12.08 kaggle 比赛 Titanic-11

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 内容&#xff1a; 学习 kaggle 入门比赛 Titanic - Machine Learning from Disaster学习机器学习&#xff08;pandas&#xff0c;numpy&#xff0c;sklearn&#xff0c;seaborn&#xff0c;matplotlib&a…...

处理后端返回的时间格式问题

今天在做项目的时候&#xff0c;发现后端返回的时间格式是“2024-12-08T06:11:46.00000:00”。 通过查阅资料&#xff0c;我发现这是后端返回的ISO 8601标准时间格式。这种格式在前端展示时可能不符合用户习惯&#xff0c;需要转换为更常见的“yyyy-MM-dd HH:mm:ss”格式&…...

【读书笔记·VLSI电路设计方法解密】问题33:ASIC芯片构建的主要步骤是什么

如问题32所述,ASIC芯片构建的主要步骤包括:RTL编写、功能验证、逻辑综合、布局布线、最终逻辑验证、时序验证、物理验证以及流片(Tapeout)。 RTL编写(RTL Coding) 这一阶段将设计意图从自然语言(如英文或中文)翻译为计算机可模拟的语言,以便进行仿真验证设计意图。此外…...

[机器学习] 监督学习之线性回归与逻辑回归

这里写目录标题 一、监督学习概述二、线性回归&#xff08;一&#xff09;模型表示&#xff08;二&#xff09;损失函数&#xff08;三&#xff09;梯度下降算法导入所需库生成模拟数据&#xff08;可替换为真实数据&#xff09;初始化参数并进行训练可视化损失函数随迭代次数的…...

十五、全局搜索正则表达式

一.grep简介 grep 全程Globally search a Regular Expression and Print&#xff0c;是一种强大的文本搜索工具&#xff0c;它能使用特 定模式匹配&#xff08;包括正则表达式&#xff09;搜索文本&#xff0c;并默认输出匹配行。Unix的grep家族包括grep和egrep 二.grep的工作…...

kali Linux 安装配置教程(图文详解)

目录 一、下载安装VMware二、下载kali镜像三、安装kali到虚拟机 一、下载安装VMware 点我查看 二、下载kali镜像 官网下载&#xff1a;https://www.kali.org/get-kali/#kali-platforms 演示下载的为下图左边的&#xff0c;实际我们直接下载右侧虚拟机的直接使用就行 右侧下…...

QT QTableWidget::setModel”: 无法访问 private成员

//严重性代码说明项目文件行禁止显示状态 //错误C2248 “QTableWidget::setModel”: 无法访问 private 成员(在“QTableWidget”类中声明) QSqlQueryModel* sql_model; ui.tableView_database->setModel(sql_model); //ok ui.tableWidget_database->setModel(sql_model)…...

C#怎么判断电脑是否联网

在 C# 中&#xff0c;可以通过几种方法检测计算机是否联网。以下是几种常用的方式&#xff1a; 1. 使用 System.Net.NetworkInformation.Ping 类 通过发送一个 Ping 请求到公共 DNS 服务器&#xff08;如 Google 的 DNS 8.8.8.8&#xff09;来检测是否联网。这是最常见的一种…...

丢垃圾视频时间检测 -- 基于状态机的实现

文章目录 OverviewKey PointsPseudo-code Overview 需要考虑的方面 状态定义和转换条件时序约束空间约束异常处理 状态机的设计需要考虑的场景&#xff1a; 没有人人进入人携带垃圾人离开但垃圾留下垃圾消失异常情况&#xff08;检测失败、多人多垃圾等&#xff09; Key P…...

EEG2Rep自监督脑电大模型文献阅读

原文网址&#xff1a; EEG2Rep: Enhancing Self-supervised EEG Representation... - Google 学术搜索https://scholar.google.com/scholar?hlzh-CN&as_sdt0%2C5&qEEG2Rep%3AEnhancingSelf-supervisedEEGRepresentationThroughInformativeMaskedInputs&btnG 1.文…...

【前端知识】React简单入门

React语法介绍 概述一、产生背景与发展历程二、主要特点三、技术细节四、应用场景与优势五、学习与实践 JSX语法一、JSX的基本概念二、JSX的基本使用三、JSX中的JavaScript表达式四、JSX的条件渲染五、JSX的列表渲染六、JSX的样式处理七、JSX的其他注意事项 基础语法一、基础概…...

高通---Camera调试流程及常见问题分析

文章目录 一、概述二、Camera配置的整体流程三、Camera的代码架构图四、Camera数据流的传递五、camera debug FAQ 一、概述 在调试camera过程中&#xff0c;经常会遇到各种状况&#xff0c;本篇文章对camera调试的流程进行梳理。对常见问题的提供一些解题思路。 二、Camera配…...

电压电流声音信号采集与分析系统

基于Labview的电压电流与声音信号采集与分析系统可以同时采集&#xff1a;电压、电流与振动信号。该系统部件可以采集传感器的真实数据&#xff0c;而且可以对采集的信号进行时域与频域分析&#xff0c;并可以实时显示历史数据&#xff0c;保存历史数据。具体的功能如下&#x…...

MongoDB语法及MongoTemplate用法

文章目录 概念操作数据库语法数据库及文档操作文档操作 整合springboot的MongoTemplate用法springboot配置插入删除更新查询 概念 1.MongoDB 是一个文档数据库&#xff0c;数据以 BSON 方式存储&#xff08;类似于json&#xff09; 2.文档&#xff08;Document&#xff09;&am…...

【git reset】本地下载特定历史提交哈希值的github文件【未联网服务器】进行git reset操作

本地电脑下载git文件&#xff0c;并进行git reset操作 问题描述&#xff1a;解决方法&#xff1a;方法1&#xff1a;直接下载特定版本的github压缩包。方法二&#xff1a; 在本地windows电脑上安装git工具进行git reset版本回退&#xff0c;之后上传相应版本的压缩包到服务器上…...

【开源安全保护】如何安装JumpServer堡垒机

【开源安全保护】如何安装JumpServer堡垒机 什么是堡垒机 大家好&#xff0c;我是星哥&#xff0c;今天我以前来认识堡垒机 堡垒机&#xff08;Bastion Host&#xff09;&#xff0c;也称为跳板机&#xff08;Jump Server&#xff09;&#xff0c;是指在计算机网络中&#x…...

log4j漏洞复现--vulhub靶场

声明&#xff1a;学习过程参考了同站的B1g0rang大佬的文章 Web网络安全-----Log4j高危漏洞原理及修复(B1g0rang) CVE-2021-44228 RCE漏洞 Log4j 即 log for java(java的日志) &#xff0c;是Apache的一个开源项目&#xff0c;通过使用Log4j&#xff0c;我们可以控制日志信息输…...

K8s面试系列:K8s常用 API 资源总结速记

写在前面 博文内容为 K8s 中常用的API 资源简单总结适合对K8s 有基本认知,温习,面试准备的小伙伴内容涉及:API 资源组成 ,SSA 和 CSA 资源操作方式,以及下面资源类别简单描述 工作负载:Deployments,StatefulSets,HorizontalPodAutoscaler (HPA)…服务: Service,Ingress,E…...

汽车免拆案例 | 2007款宝马650i车发动机偶尔无法起动

故障现象 一辆2007款宝马650i车&#xff0c;搭载N62B48B发动机&#xff0c;累计行驶里程约为26万km。车主反映&#xff0c;发动机偶尔无法起动&#xff0c;故障频率较低&#xff0c;十几天出现1 次&#xff0c;且故障出现时起动机不工作。 故障诊断  接车后试车&#xff0c;…...

前端(三)html标签(2)

html标签(2) 文章目录 html标签(2)一、列表标签二、表格三、form表单 一、列表标签 html中的列表分为无序列表、有序列表和自定义列表。 <!--无序列表的使用--> <!--pycharm中可以用ul>li*3tab的快捷键快速生成无序列表--> <ul><li>秒杀</li&g…...

D91【python 接口自动化学习】- pytest基础用法

day91 pytest的setup&#xff0c;setdown详解&#xff08;三&#xff09; 学习日期&#xff1a;20241207 学习目标&#xff1a;pytest基础用法 -- pytest的setup&#xff0c;setdown详解&#xff08;三&#xff09; 学习笔记&#xff1a; setup、teardown详解&#xff08;三…...

云桌面:云计算桌面

目录 云桌面的定义和核心概念 技术架构详解 主流架构详解 管理成本分析 安全性措施 应用场景详解 云桌面的定义和核心概念 云桌面是一种通过云计算技术提供的虚拟桌面服务&#xff0c;它允许用户通过网络访问远程服务器上的虚拟机&#xff0c;这些虚拟机为用户提供了一个…...

Word处理表格的一些宏

目录 1、表格首行居中2、表格内容靠左上下居中&#xff08;排除首行&#xff09; 1、表格首行居中 说明&#xff1a; 遇到错误将进行捕获&#xff0c;然后继续处理下一个表格 宏&#xff1a; Sub 表格首行居中()Dim tbl As tableOn Error Resume Next 错误时继续执行下一个…...

Linux网络编程---本地套接字

1.概述 本地套接字 1&#xff1a;作用:本地的进程间通信 2.有关系的进程间通信 3.没有关系的进程间的通信 本地套结字实现流程和网络套结字实现相似&#xff0c;一般采用tcp 二.通信流程 本地套结字通信的流程:1.服务器端:1.1 int fd socket(AF_UNIX/AF_LOCAL,…...

C#自动验证发票真假的程序

C#自动验证发票真假的程序 using Microsoft.Azure.CognitiveServices.Vision.ComputerVision; using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models; using System; using System.IO; using System.Threading.Tasks;namespace InvoiceValidation {class Pr…...

后端技术进阶知识总结

前端开发、后端开发、AI算法与应用等技术进阶知识总结 前言1.前端开发2.后端开发3.AI算法3.1 Studio级别的AI工具使用 前言 本文不记录基础性问题和详细解决方案。只记录key idea。 1.前端开发 2.后端开发 依赖注入&#xff08;Dependency Injection&#xff0c;简称DI&…...

opencv复习

目录 1.core 1.图像变换 1.1 affine仿射变换 1.2 透视变换 2.四元数&#xff08;旋转&#xff09; 2.1 轴角转四元数 2.2 旋转矩阵转四元数 2.3 欧拉角转旋转矩阵 2.4 四元数转旋转矩阵 2.5 四元数用eigen用的比较多 2. imgproc. Image Processing 2.1 bilateralF…...

【Unity高级】在编辑器中如何让物体围绕一个点旋转固定角度

本文介绍如何在编辑器里让物体围绕一个点旋转固定角度&#xff0c;比如上图里的Cube是围绕白色圆盘的中心旋转45度的。 目标&#xff1a; 创建一个在 Unity 编辑器中使用的旋转工具&#xff0c;使开发者能够在编辑模式下快速旋转一个物体。 实现思路&#xff1a; 编辑模式下…...

通过IP远程连接MySQL服务时不允许连接到这个MySQL服务器

当你在连接Mysql时报这个错误时 is not allowed to connect to this MySQL server&#xff0c;意思是 MySQL 服务器不允许来自 IP 地址的连接。这通常是由于 MySQL 服务器的访问控制列表&#xff08;ACL&#xff09;限制了特定主机的连接。 要解决这个问题&#xff0c;你需要授…...

试题转excel;pdf转excel;试卷转Excel,word试题转excel

一、问题描述 一名教师朋友&#xff0c;偶尔会需要整理一些高质量的题目到excel中 以往都是手动复制搬运&#xff0c;几百道题几乎需要一个下午的时间 关键这些事&#xff0c;枯燥无聊费眼睛&#xff0c;实在是看起来就很蠢的工作 就想着做一个工具&#xff0c;可以自动处理…...

wordpress网站使用Linux宝塔面板和SQL命令行导入导出超过50M限制的数据库

wordpress网站使用Linux宝塔面板添加mysql数据库&#xff0c;使用phpMyAdmin工具导入sql数据库文件&#xff0c;会有最大限制50M。即使把sql数据库文件压缩为gzip或zip压缩包&#xff0c;压缩包也超过50M&#xff0c;该怎么办&#xff1f;怎样导入超过50M数据库呢&#xff1f; …...

VCP-CLIP A visual context prompting modelfor zero-shot anomaly segmentation

GitHub - xiaozhen228/VCP-CLIP: (ECCV 2024) VCP-CLIP: A visual context prompting model for zero-shot anomaly segmentation 需要构建正样本&#xff0c;异常样本&#xff0c;以及对应的Mask...