828华为云征文|华为云Flexus云服务器X实例部署immich相片管理系统

news2024/9/27 12:17:35

828华为云征文|华为云Flexus云服务器X实例部署immich相片管理系统

  • 前言
  • 一、Flexus云服务器X实例介绍
    • 1.1 Flexus云服务器X实例简介
    • 1.2 Flexus云服务器X实例特点
    • 1.3 Flexus云服务器X实例使用场景
  • 二、immich介绍
    • 2.1 immich简介
    • 2.2 immich注意事项
    • 2.3 主要特点
    • 2.4 使用场景
  • 三、本次实践介绍
    • 3.1 本次实践简介
    • 3.2 本次环境规划
  • 四、购买华为云Flexus云服务器X实例
    • 4.1 登录华为云
    • 4.2 进入Flexus云服务器X实例购买页面
    • 4.3 购买Flexus云服务器X实例配置
    • 4.4 使用Xshell远程连接
  • 五、检查Docker环境
    • 5.1 检查操作系统版本
    • 5.2 检查内核版本
    • 5.3 检查Docker版本
    • 5.5 检查Docker compose版本
  • 六、部署immich应用
    • 6.1 拉取immich镜像
    • 6.2 创建部署目录
    • 6.3 编辑docker-compose.yaml文件
    • 6.4 编辑.env文件
    • 6.5 创建immich容器
    • 6.6 检查immich容器状态
  • 七、访问前准备工作
    • 7.1 关闭selinux和防火墙
    • 7.2 Flexus云服务器X实例安全组配置
  • 八、访问immich服务
    • 8.1 访问immich初始页
    • 8.2 注册账号
    • 8.3 登录immich
  • 九、immich的基本使用
    • 9.1 上传图片
    • 9.2 新建相册
    • 9.3 查看统计数据
  • 十、使用体验与总结

前言


在数字化时代,个人和企业对于数据隐私和安全的需求日益增长,Immich 作为一个开源的、自托管的照片和视频备份解决方案,为用户提供了一个私密且可控的媒体文件存储选项。华为云Flexus云服务器X实例凭借其卓越的柔性算力和专为中小企业及开发者设计的特性,成为部署此类应用的理想选择。通过结合Immich的强大功能与华为云的高性能基础设施,用户不仅能够享受到高效的数据管理和访问体验,还能确保数据的安全性和隐私性。本文将详细介绍如何在华为云Flexus云服务器X实例上部署Immich相片管理系统,展示华为云在提供可靠、灵活云计算服务方面的卓越表现。


一、Flexus云服务器X实例介绍

1.1 Flexus云服务器X实例简介

  • 官网地址: 华为云Flexus云服务器X实例

华为云Flexus云服务器X实例是新一代面向中小企业和开发者的柔性算力云服务器。它能够智能感知业务负载的变化,自动调整资源配置。这款服务器特别适用于中低负载的应用场景,例如电商直播、企业网站建设、开发测试环境、游戏服务器以及音视频服务等。X实例的设计理念旨在为用户提供更加灵活和高效的计算资源管理方式。通过智能调整,它可以更好地满足不同业务的需求,提高资源利用率。

在这里插入图片描述

1.2 Flexus云服务器X实例特点

  • 提供丰富的公共镜像:Flexus云服务器X实例提供多种公共镜像供用户选择,方便快速部署各种应用和服务。

  • 可灵活自定义vCPU内存配比:用户可以根据自己的需要灵活调整虚拟CPU和内存的配比,以满足不同场景的需求。

  • 智能感知业务动态升降配:Flexus云服务器X实例能够智能感知业务的负载情况,并根据需要自动升降配,以满足业务的需求,提高系统的稳定性和性能。

  • 负载范围更高:相对于Flexus应用服务器L实例,Flexus云服务器X实例能够处理更高的负载,适用于更复杂和繁忙的场景。

1.3 Flexus云服务器X实例使用场景

Flexus云服务器X实例针对不同的使用场景展现出其独特的优势:

  1. 电商直播:利用X实例搭建电商交易平台,可以有效应对电商市场的瞬息万变,从容处理业务压力波动,确保交易过程顺畅无阻。

  2. 企业建站:面向博客、论坛和企业门户等应用场景,X实例帮助企业高效传播价值信息,促进信息共享与交流,支持构建多功能传播和交互平台。

  3. 个人开发测试:开发者在开发和测试过程中所需的环境资源可以通过X实例便捷获取,不仅提高了搭建效率,而且降低了成本。

  4. 游戏服务器:适用于搭建游戏后台服务器,强大的计算能力可以轻松应对大量玩家同时在线的情况,同时支持平滑扩容,快速应对玩家数量增长的需求,以及提供出色的网络加速能力以提升用户体验。

二、immich介绍

2.1 immich简介

Immich 是一个开源的、自托管的照片和视频备份解决方案,它允许用户在自己的服务器上存储和管理媒体文件。Immich 旨在为用户提供一种私密且可控的方式来保存个人照片和视频,避免了将数据上传到第三方云服务可能带来的隐私问题。

2.2 immich注意事项

该项目正在非常积极的开发中。

  • ⚠️预计会出现错误和重大更改。
  • ⚠️ 请勿将该应用程序用作存储照片和视频的唯一方式。
  • ⚠️始终遵循 3-2-1 备份计划,为您珍贵的照片和视频!

2.3 主要特点

  • 开源与自托管:Immich 是完全开源的,这意味着任何人都可以查看其代码,并根据需要进行修改或扩展。通过自托管的方式,用户可以在自己控制的服务器上部署Immich,确保了数据的安全性和隐私性。

  • 跨平台兼容:Immich 提供了适用于iOS、Android以及Web端的应用程序,使得用户能够方便地从各种设备访问和管理他们的媒体库。

  • 自动备份:用户可以通过设置来实现手机上的照片和视频自动备份到自己的服务器上,从而保证珍贵记忆的安全。

  • 智能功能:Immich 支持基于人工智能的面部识别技术,帮助用户组织并标记他们的照片集。此外,还提供了基于地理位置和时间的搜索功能,便于快速查找特定的照片或视频。

  • 易于安装与配置:借助Docker等容器化技术,Immich 可以相对容易地被部署到任何支持Docker的服务器上,包括但不限于Linux、macOS以及Windows系统。

  • 丰富的API接口:对于开发者来说,Immich 提供了RESTful API,允许创建自定义应用程序或者集成到现有的项目中去。

  • 社区驱动:作为一款活跃发展的开源项目,Immich 拥有一个积极贡献和支持的社区,持续不断地改进软件特性并解决遇到的问题。

2.4 使用场景

  • 家庭媒体库:家庭成员可以将各自的照片和视频自动备份到一个中央服务器上,方便全家共享和浏览。
  • 小型企业资料管理:小型企业利用Immich来存储和组织公司活动、产品图片等重要业务资料,便于团队访问和协作。
  • 个人隐私保护:注重隐私的个人用户通过在自己的服务器上部署Immich,确保照片和视频的安全存储,远离第三方云服务的数据泄露风险。
  • 旅行者与摄影师:经常旅行或专业摄影师使用Immich即时备份大量高分辨率照片和视频,保证旅途中的珍贵记忆安全无虞。
  • 教育机构资源分享:学校和培训机构使用Immich建立多媒体教育资源库,供教师上传教学材料,并让学生轻松访问这些学习资源。
  • 远程工作团队协作:分布在全球各地的工作团队通过Immich平台共享项目相关的视觉素材,促进高效沟通与合作。

三、本次实践介绍

3.1 本次实践简介

1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;
2.本次实践环境为华为云Flexus云服务器X实例,使用的操作系统为openEuler 22.03 LTS
3.在Docker环境下部署immich相片管理系统。

3.2 本次环境规划

服务器类别公共镜像选择内网IP地址Docker版本操作系统版本
华为云Flexus云服务器X实例openEuler192.168.0.16926.1.3openEuler 22.03 LTS

四、购买华为云Flexus云服务器X实例

4.1 登录华为云

进入华为云官网:https://activity.huaweicloud.com/,登录自己的华为云账号,进入华为云首页。

在这里插入图片描述
在这里插入图片描述

4.2 进入Flexus云服务器X实例购买页面

我们在华为云官网首页,精选推荐模块中,可以看到Flexus云服务器X实例,点击进入Flexus云服务器X实例主页。

在这里插入图片描述
在这里插入图片描述

点击页面中的“购买”选项,进入Flexus云服务器X实例购买页面。

在这里插入图片描述

4.3 购买Flexus云服务器X实例配置

  • 镜像选择:本次实践使用openEuler作为公共镜像,请根据实际需求自定义选择合适的操作系统镜像。
  • 镜像切换说明:参考的公共镜像原为Huawei Cloud EulerOS,但本次实践中已切换至openEuler。
  • 基础配置参考:购买时可参考以下基础配置进行选择。
项目配置说明
计费模式包年/包月
区域华北—北京四,可用区:随机即可
实例规格关闭性能模式,选择自定义,4vCPUs | 12GiB
镜像公共镜像,openEuler,版本:openEuler 2.0 Standard 64 bit (10GiB)
应用加速不加速
存储系统盘,通用型SSD 100G
网络选择默认即可
安全组选择默认即可
弹性公网IP选择“现在购买”,全动态BGP,带宽3Mbit/s
云服务器名称可自定义设置,这里选择默认的名称
登录凭证自定义设置密码
云备份暂不购买
  • 确认配置及购买:在确认配置页面仔细检查Flexus云服务器X实例的各项设置,确保无误后点击“立即购买”,完成付款流程即可成功购买。

在这里插入图片描述

4.4 使用Xshell远程连接

进入华为云Flexus云服务的控制台,选择Flexus云服务器X实例,可以看到已经正在运行的Flexus云服务器X实例。

在这里插入图片描述

  • 复制Flexus云服务器X实例的弹性公网IP地址

在这里插入图片描述

  • 主要填写Flexus云服务器X实例的弹性公网IP地址,输入其登录用户和密码,连接即可。

在这里插入图片描述

在这里插入图片描述

五、检查Docker环境

5.1 检查操作系统版本

检查Flexus云服务器X实例的操作系统版本,本次实践选择的版本为openEuler 22.03 LTS

[root@flexusx-51a1 ~]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31"

5.2 检查内核版本

检查当前操作系统的内核版本,当前内核版本为5.10.0-60.139.0.166.oe2203.x86_64

[root@flexusx-51a1 ~]# uname -r
5.10.0-60.139.0.166.oe2203.x86_64

5.3 检查Docker版本

部署该项目需要提前安装Docker环境,检查Docker版本,当前安装的Docker版本为 26.1.3

[root@flexusx-51a1 ~]# docker -v
Docker version 26.1.3, build b72abbb

检查Docker服务状态,确保Docker服务正常。

[root@flexusx-51a1 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
     Active: active (running) since Mon 2024-09-23 20:27:32 CST; 12min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 18484 (dockerd)
      Tasks: 10
     Memory: 240.2M
     CGroup: /system.slice/docker.service
             └─ 18484 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

5.5 检查Docker compose版本

检查docker compose版本,当前默认安装版本为v2.27.0

[root@flexusx-51a1 ~]# docker compose version
Docker Compose version v2.27.0

六、部署immich应用

6.1 拉取immich镜像

从 Google 容器仓库(Google Container Registry, GCR)和 Docker Hub 拉取 Immich 相关镜像时,请参考以下镜像名称及版本。请注意,由于镜像版本的更新和 Immich 的持续迭代,部署文件和步骤可能会有所变化。如果在部署过程中遇到问题,请参阅官方最新文档以获取最新的指导和支持。

docker pull ghcr.io/immich-app/immich-server:release

docker pull  ghcr.io/immich-app/immich-machine-learning:release

docker pull docker.io/redis:6.2-alpine@sha256:2d1463258f2764328496376f5d965f20c6a67f66ea2b06dc42af351f75248792

docker pull docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0

查看本地已经下载的4个immich相关镜像

docker images

在这里插入图片描述

6.2 创建部署目录

在命令行终端上,我们需要创建部署目录/data/immich

mkdir -p /data/immich && cd /data/immich

6.3 编辑docker-compose.yaml文件

本次实践使用docker compose方式部署immich应用,编辑docker-compose.yaml文件,可自行修改映射端口部分。

vim docker-compose.yaml
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    volumes:
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
    #   file: hwaccel.ml.yml
    #   service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:2d1463258f2764328496376f5d965f20c6a67f66ea2b06dc42af351f75248792
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    healthcheck:
      test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
      interval: 5m
      start_interval: 30s
      start_period: 5m
    command: ["postgres", "-c", "shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
    restart: always

volumes:
  model-cache:



6.4 编辑.env文件

编辑.env文件,可参考如下配置:

vim .env

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=./library
# The location where your database files are stored
DB_DATA_LOCATION=./postgres

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
# TZ=Etc/UTC

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release

# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=postgres

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
~

6.5 创建immich容器

执行以下命令,使用docker-compose.yaml文件创建immich服务。

[root@flexusx-51a1 immich]# docker compose up -d
[+] Running 6/6
 ✔ Network immich_default             Created                                                                                                          0.0s
 ✔ Volume "immich_model-cache"        Created                                                                                                          0.0s
 ✔ Container immich_postgres          Started                                                                                                          0.3s
 ✔ Container immich_machine_learning  Started                                                                                                          0.2s
 ✔ Container immich_redis             Started                                                                                                          0.2s
 ✔ Container immich_server            Started                                                                                                          0.4s

在这里插入图片描述

6.6 检查immich容器状态

检查immich容器状态,确保immich容器正常启动。

[root@flexusx-51a1 immich]# docker compose ps
NAME                      IMAGE                                                                                                                  COMMAND              SERVICE                   CREATED         STATUS                   PORTS
immich_machine_learning   ghcr.io/immich-app/immich-machine-learning:release                                                                     "tini -- ./start.sh"     immich-machine-learning   5 minutes ago   Up 5 minutes (healthy)
immich_postgres           docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0   "docker-entrypoint.s…"   database                  5 minutes ago   Up 5 minutes (healthy)   5432/tcp
immich_redis              docker.io/redis:6.2-alpine@sha256:2d1463258f2764328496376f5d965f20c6a67f66ea2b06dc42af351f75248792                     "docker-entrypoint.s…"   redis                     5 minutes ago   Up 5 minutes (healthy)   6379/tcp
immich_server             ghcr.io/immich-app/immich-server:release                                                                               "tini -- /bin/bash s…"   immich-server             5 minutes ago   Up 5 minutes (healthy)   0.0.0.0:2283->3001/tcp, :::2283->3001/tcp

七、访问前准备工作

7.1 关闭selinux和防火墙

  • 关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  • 停止防火墙
systemctl stop firewalld
systemctl disable firewalld

7.2 Flexus云服务器X实例安全组配置

进入Flexus云服务器X实例控制台,进行安全组规则配置。入方向上放行2283端口,确认配置即可。

在这里插入图片描述

八、访问immich服务

8.1 访问immich初始页

浏览器访问地址:http://服务器IP地址:2283,将IP替换为自己云服务器弹性公网IP地址。浏览器打开后,进入immich初始页。

在这里插入图片描述

8.2 注册账号

点击“Getting Started”,进入账号注册页面。

在这里插入图片描述

在账号注册页,自定义填写账号信息即可。

在这里插入图片描述

8.3 登录immich

在immich登录页,输入刚才注册的账号密码,登录即可。

在这里插入图片描述

在这里插入图片描述

九、immich的基本使用

9.1 上传图片

点击上传选项,上传本地图片。

在这里插入图片描述

上传完成后,可以看到刚上传的图片效果。

在这里插入图片描述

9.2 新建相册

在相册管理页面,点击创建相册。

在这里插入图片描述

填写相册名称:自定义填写即可,可选择将已上传的图片加入该新建相册。

在这里插入图片描述

在这里插入图片描述

9.3 查看统计数据

点击Administration,进入系统设置页面,选择“Server status”,可以看到相关统计信息。

在这里插入图片描述

十、使用体验与总结

通过在华为云Flexus云服务器X实例上成功部署Immich相片管理系统,我们不仅体验到了高效稳定的自托管照片和视频备份解决方案,还深刻感受到了华为云提供的卓越性能和灵活性。华为云的柔性算力确保了即使在高负载情况下,系统依然能够流畅运行,为用户提供无缝的使用体验。此外,华为云丰富的文档和支持资源极大地简化了部署过程,使得即使是技术新手也能轻松上手。此次实践再次证明了华为云作为领先云计算服务提供商,在支持创新应用和服务方面的强大能力和专业性。


在华为云828 B2B企业节期间,Flexus X实例带来了极具吸引力的优惠活动。华为云凭借其顶级的云服务和卓越的性能,为企业提供了稳定可靠的支持,成为推动业务增长的理想选择。我们诚挚邀请各行各业的伙伴加入华为云的大家庭,共同见证技术创新带来的无限潜力。让我们携手并进,开启云端发展的新篇章,共享科技进步所带来的丰硕成果!


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2165472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI预测体彩排3采取888=3策略+和值012路或胆码测试9月25日升级新模型预测第91弹

经过90多期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,已到达90%的命中率,这给喜欢打私菜的朋友提供了极高价值的预测结果~当然了,大部…

【Python】利用Python+thinker实现旋转转盘

需求/目的:用Pythonthinker实现转盘,并且能够随机旋转任意角度。 转盘形式: 主界面: from tkinter import *winTk() win.title("大转盘") win.geometry("300x400")win.mainloop() 转盘绘制: 这…

YOLO系列训练生成的exp进行处理找出mAP值

YOLOv8或者YOLOv10训练生成的exp文件进行遍历,找出results.csv文件中metrics/mAP50(B)、metrics/mAP50-95(B)值和args.yaml中的mode文件,将他们保存到一个excel文件中。 YOLO训练train.py代码如下: 模型训练好后生成exp文件如下: 生成excel文件完整代码如下: import o…

ad14转cadence17.4

一、原理图转换 将原理图文件拖入到新建工程中

专业之选!行业专家力荐的十大文件摆渡系统,你选对了吗?

在信息化时代,数据的流通与共享已经成为企业运营中不可或缺的一部分。为了应对日益增长的数据传输需求,各大厂商纷纷推出了各类文件摆渡系统,以确保数据传输的安全性、高效性和便捷性。以下是行业专家力荐的十大文件摆渡系统,供您…

朗国电子(嵌入式)

1.[问答题]已知单片机内置10位精度的ADC,单片机工作电压1.8V,ADC基准电压1.8V,请计算ADC采样的电压最小分辨率是多少?请写出计算过程和结果;如果单片机ADC输入口电压为0.9V,则采样得到的值是多少?请写出计算过程和结果。 2.[问答…

2024 年最新 Protobuf 结构化数据序列化和反序列化详细教程

Protobuf 序列化概述 Protobuf(Protocol Buffers)是由Google开发的一种语言中立、平台中立、可扩展的序列化结构数据的方法。它用于在不同系统之间高效地交换数据。Protobuf使用定义文件(.proto)来描述数据结构,并通过…

excel导出图片---HSSFWorkbook--SXSSFWorkbook

1 概述 平时在工作中,excel导出图片经常会用到,但奈何HSSFWorkbook导出数据数量有限制问题,所以企业里大多都用SXSSFWorkbook格式,很少用HSSFWorkbook。所以今天以这两种格式分别记录下,图片的导出过程。 2 HSSFWork…

【刷题3】找到字符串中所有字母异位词、串联所有单词的子串

目录 一、找到字符串中所有字母异位词二、串联所有单词的子串 一、找到字符串中所有字母异位词 题目: 思路: 用一个变量count来统计有效字符的个数。哈希表2统计字符串p的每个字符出现的个数,然后遍历字符串s,先进窗口&#xf…

怎么测试射频芯片质量的好坏?

无论是手机通信,还是卫星导航,射频芯片都是其核心组件之一。本文将探讨如何准确判断射频芯片的质量,以确保技术设备的稳定运行。 1. 外观检查 检查射频芯片是否有破损、引脚断裂、缺陷等。 2. 电气参数测试 对射频芯片的输入输出阻抗、功耗、…

DBAPI如何实现插入数据前先判断数据是否存在,存在就更新,不存在就插入

DBAPI实现数据不存在即插入、存在即更新 场景 往数据库插入数据的时候,需要先判断一下记录是否在数据库已经存在,如果已经存在就更新记录,如果不存在,才插入数据。 实现方案 采用存储过程实现,以mysql为例子 创建存储过…

【运维系列资料】运维系统建设方案(PPT源文件)

1.智慧运维系统建设背景 2.智慧运维系统建设目标 3.智慧运维系统建设内容 4.智慧运维系统建设技术 5.智慧运维系统建设流程 6.智慧运维系统建设收益 软件全套资料部分文档清单: 工作安排任务书,可行性分析报告,立项申请审批表,产品…

小阿轩yx-Ansible部署与应用基础

小阿轩yx-Ansible部署与应用基础 前言 由于互联网的快速发展导致产品更新换代速度逐步增长,运维人员每天都要进行大量的维护操作,按照传统方式进行维护使得工作效率低下。这时部署自动化运维就可以尽可能安全、高效的完成这些工作。 Ansible 概述 什…

编程遇到问题了?一个命令让 AI 解决你的困惑!

作为一名程序员,我们在开发过程中常常会遇到各种各样的问题,尤其是在开发新功能或使用新技术时。在这些时候,我们往往会寻求帮助并寻找最佳的解决方案。 去年的时候大家还是在使用百度或者谷歌来搜寻问题的答案,但是今年大家肯定…

MICS:PythonJail沙箱逃逸(持续更新中)

沙箱是一种防护机制,是用来运行不受信任的代码,通常是用户上传的代码,但这些代码可能是恶意代码,而沙箱就是防止恶意代码运行的机制。所谓沙箱逃逸,就是利用相关操作绕过沙箱防护,从而获得目标主机的文件信…

JVM(HotSpot):堆空间(Heap)以及常用相关工具介绍

文章目录 内存结构图二、堆的定义三、堆内存溢出四、堆内存排查工具 内存结构图 二、堆的定义 1、通过new关键字创建的对象,都会放到堆空间中。 2、它是线程共享的,堆中的对象都要考虑线程安全问题。 那有同学肯定会问,方法内通过new创建的…

JavaScript --数字Number的常用方法

toFixed(保留几位小数) <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthde…

python编程开发“人机猜拳”游戏

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

UIAutomation:Python 自动获取 QQ 群成员资料

出于兴趣&#xff0c;想要获取 “QQ 群”成员资料&#xff0c;于是乎找到了一个自动化的 Python 仓库&#xff1a;Python-UIAutomation-for-Windows。 目录 1. 简介 1.1 实际环境 1.2 安装/源码 1.2.1 pip安装 1.2.2 源码 2. 代码 2.1 全部代码 2.2 class QQGroupMemb…

16. C++ TinyWebServer项目总结(16. 服务器调制、调试和测试)

主要包括&#xff1a; 使用 tcpdump 抓包&#xff1b;使用 gdb 调试器&#xff1b;使用压力测试工具&#xff0c;模拟现实世界中的高并发请求&#xff0c;测试服务器在高压状态下的稳定性。 最大文件描述符数 Linux 对应用进程能打开的最大文件描述符数量有两个层次的限制&a…