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

【Kubernetes】常用命令全解析:从入门到实战(上)

🐇明明跟你说过:个人主页

🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅

🔖行路有良友,便是天堂🔖

目录

一、引言

1、Kubernetes简介

2、安装Kubernetes

二、Kubernetes集群管理命令

1、kubectl:K8s命令行工具介绍

2、使用kubectl查看集群状态

3、节点管理(添加、删除、查看节点)

4、创建、删除与切换命名空间

三、资源对象管理命令

1、kuberctl管理pod

1.1、创建 Pod

1.2、查看 Pod 状态

​1.3、进入 Pod 容器内部

1.4、删除 Pod

1.5. 在指定命名空间管理 Pod

2、Deployments管理 

2.1、创建 Deployment

2.2、查看 Deployment 状态

2.3、更新 Deployment

2.4、滚动更新状态

2.5、回滚 Deployment

2.6、扩缩容 Deployment

2.7、删除 Deployment

2.8、在命名空间中管理 Deployment

3、Services管理

3.1、Service 类型简介

3.2、创建 Service

3.3、查看 Service 状态

3.4、访问 Service

3.5、更新 Service

3.6、删除 Service

4、ConfigMaps管理 

4.1、创建 ConfigMap

4.2、查看 ConfigMap

4.3、在 Pod 中使用 ConfigMap

5、Secrets 管理

5.1、创建 Secret

5.2、查看 Secret

5.3、在 Pod 中使用 Secret


一、引言

1、Kubernetes简介

Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。它最初由 Google 开发,并于 2014 年开源,现由 Cloud Native Computing Foundation (CNCF) 维护。

核心功能:
1. 自动化部署和恢复

  • Kubernetes 可根据配置文件快速部署应用,并在应用或节点发生故障时自动重启或调度到其他节点。

2. 弹性伸缩

  • 支持根据负载自动扩展或缩减容器副本数量,提升资源利用率。

3. 负载均衡和服务发现

  • 自动分配流量到不同的容器实例,确保服务高可用并支持服务间自动发现。

4. 存储编排

  • 支持多种存储后端(本地存储、云存储、NFS、Ceph 等),可根据需求挂载存储卷。

5. 滚动更新和回滚

  • 支持应用的滚动更新,确保更新过程不中断;若出现问题,可以快速回滚到稳定版本。

6. 配置管理和机密管理

  • 使用 ConfigMap 和 Secret 管理配置数据和敏感信息,简化应用部署。

 

2、安装Kubernetes

关于k8s安装,请参考:

《深度解析:Kubernetes 1.28.2集群安装过程中的关键步骤》

《在Centos中搭建 K8s 1.23 集群超详细讲解》

二、Kubernetes集群管理命令

1、kubectl:K8s命令行工具介绍

kubectl 是 Kubernetes 的命令行工具,用于管理 Kubernetes 集群和应用。通过 kubectl,我们可以部署应用、查看资源、创建/删除对象、排查问题等,是 Kubernetes 集群日常运维的重要工具。

基本语法

kubectl [command] [TYPE] [NAME] [flags]
  • command:要执行的操作(如 get、describe、create、delete 等)。
  • TYPE:资源类型(如 pod、service、deployment 等,支持缩写)。
  • NAME:资源名称,省略则对所有资源执行操作。
  • flags:额外参数,影响命令行为(如 -n 指定命名空间,-o 指定输出格式)。

 

2、使用kubectl查看集群状态

查看集群信息:

kubectl cluster-info

输出示例:

Kubernetes control plane is running at https://192.168.40.180:6443
CoreDNS is running at https://192.168.40.180:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

  • 显示 Kubernetes 控制平面和服务的访问地址。
  • 如果有问题,输出可能为空或返回错误信息。

3、节点管理(添加、删除、查看节点)

查看节点

基本命令

kubectl get nodes


查看详细信息

kubectl describe node <node-name>
  • 可以查看节点上的资源情况、状态、分配的 Pod 等详细信息。

查看节点的资源使用情况

kubectl top nodes
  • 输出节点的 CPU 和内存使用情况,帮助了解节点的资源消耗。

添加节点

使用 kubeadm 添加节点

获取加入集群的命令(在主节点上执行):

kubeadm token create --print-join-command

输出示例:

kubeadm join 192.168.40.180:6443 --token abcdef.0123456789abcdef \
  --discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef

在新节点上执行输出的命令:

kubeadm join 192.168.40.180:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef

验证节点是否加入集群: 回到主节点,执行:

kubectl get nodes

删除节点

从集群中删除节点

在主节点上执行以下命令:

kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data
kubectl delete node <node-name>
  • kubectl drain 会驱逐节点上的 Pod,确保节点可以安全移除。
  • kubectl delete node 从集群中移除节点信息。

在被删除的节点上清理状态
如果需要重新加入集群,先清理旧的 Kubernetes 配置:

kubeadm reset
rm -rf /etc/cni/net.d
rm -rf /var/lib/kubelet/*
rm -rf /var/lib/etcd/*

节点标记与污点管理

标记节点
为节点添加标签:

kubectl label node <node-name> <key>=<value>

示例:

kubectl label node node1 environment=production

查看节点标签

kubectl get nodes --show-labels

添加污点

kubectl taint nodes <node-name> <key>=<value>:<effect>
  • effect 可以是 NoSchedule、PreferNoSchedule、NoExecute。

示例:

kubectl taint nodes node1 key1=value1:NoSchedule

4、创建、删除与切换命名空间

在 Kubernetes 中,命名空间(Namespace) 用于实现资源的逻辑隔离,适合在开发、测试和生产环境中组织和管理资源。

创建命名空间

方法一:使用 kubectl create 命令

kubectl create namespace <namespace-name>


示例:

kubectl create namespace dev


方法二:使用 YAML 文件
创建一个名为 namespace-dev.yaml 的文件:

apiVersion: v1
kind: Namespace
metadata:name: dev

执行以下命令创建:

kubectl apply -f namespace-dev.yaml


查看命名空间

查看所有命名空间

kubectl get namespaces


示例输出:

NAME              STATUS   AGE
default           Active   10d
kube-system       Active   10d
kube-public       Active   10d
dev               Active   5m

查看某个命名空间的详细信息

kubectl describe namespace <namespace-name>


切换命名空间

设置默认命名空间
默认情况下,kubectl 操作资源是在 default 命名空间中。可以通过修改上下文切换到其他命名空间:

kubectl config set-context --current --namespace=<namespace-name>


示例:

kubectl config set-context --current --namespace=dev


验证当前上下文的命名空间:

kubectl config view --minify | grep namespace


删除命名空间

使用 kubectl delete 命令

kubectl delete namespace <namespace-name>


示例:

kubectl delete namespace dev


使用 YAML 文件
如果命名空间是通过 YAML 文件创建的,也可以使用以下命令删除:

kubectl delete -f namespace-dev.yaml


在指定命名空间中操作资源

指定命名空间创建或获取资源
在命名空间中创建资源:

kubectl create deployment nginx --image=nginx -n <namespace-name>


查看某个命名空间的所有 Pod:

kubectl get pods -n <namespace-name>


示例:

kubectl get pods -n dev

三、资源对象管理命令

1、kuberctl管理pod

1.1、创建 Pod

方法一:通过 kubectl run 命令

kubectl run <pod-name> --image=<image-name> --restart=Never
  • --restart=Never 表示创建一个独立的 Pod,而不是 Deployment。
  • --image=<image-name> 指定容器镜像,例如 nginx:latest。

示例:

kubectl run nginx-pod --image=nginx --restart=Never


方法二:使用 YAML 文件创建 Pod
编写一个 nginx-pod.yaml 文件:

apiVersion: v1
kind: Pod
metadata:name: nginx-podnamespace: default
spec:containers:- name: nginx-containerimage: nginx:latestports:- containerPort: 80

执行以下命令创建 Pod:

kubectl apply -f nginx-pod.yaml


1.2、查看 Pod 状态

列出所有 Pod

kubectl get pods

查看指定 Pod 的详细信息

kubectl describe pod <pod-name>

示例:

kubectl describe pod nginx-pod

查看 Pod 的日志

kubectl logs <pod-name>

查看容器内多个容器的日志:

kubectl logs <pod-name> -c <container-name>

1.3、进入 Pod 容器内部

kubectl exec -it <pod-name> -- /bin/bash

示例:

kubectl exec -it nginx-pod -- /bin/bash


1.4、删除 Pod

方法一:通过命令删除

kubectl delete pod <pod-name>

示例:

kubectl delete pod nginx-pod

方法二:通过 YAML 文件删除

kubectl delete -f nginx-pod.yaml

1.5. 在指定命名空间管理 Pod

列出某个命名空间下的 Pod:

kubectl get pods -n <namespace-name>

在命名空间中创建 Pod:

kubectl run nginx-pod --image=nginx --restart=Never -n <namespace-name>

2、Deployments管理 

2.1、创建 Deployment

方法一:使用 kubectl create 命令

kubectl create deployment <deployment-name> --image=<image-name>

示例:

kubectl create deployment nginx-deploy --image=nginx:latest

方法二:使用 YAML 文件创建 Deployment
编写一个 nginx-deployment.yaml 文件:

apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploylabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginx-containerimage: nginx:latestports:- containerPort: 80

执行以下命令创建 Deployment:

kubectl apply -f nginx-deployment.yaml


2.2、查看 Deployment 状态

查看所有 Deployments

kubectl get deployments

查看指定 Deployment 的详细信息

kubectl describe deployment <deployment-name>

示例:

kubectl describe deployment nginx-deploy

2.3、更新 Deployment

方法一:直接更新镜像

kubectl set image deployment/<deployment-name> <container-name>=<new-image>

示例:

kubectl set image deployment/nginx-deploy nginx-container=nginx:1.21.0

方法二:修改 YAML 文件
编辑 nginx-deployment.yaml,将 image 修改为新的版本:

image: nginx:1.21.0

应用更新:

kubectl apply -f nginx-deployment.yaml

2.4、滚动更新状态

查看滚动更新状态

kubectl rollout status deployment/<deployment-name>

示例:

kubectl rollout status deployment/nginx-deploy

暂停和恢复滚动更新

kubectl rollout pause deployment/<deployment-name>
kubectl rollout resume deployment/<deployment-name>

2.5、回滚 Deployment

回滚到上一个版本

kubectl rollout undo deployment/<deployment-name>

回滚到指定修订版本

kubectl rollout undo deployment/<deployment-name> --to-revision=<revision-number>

查看修订历史

kubectl rollout history deployment/<deployment-name>


2.6、扩缩容 Deployment

命令行扩缩容

kubectl scale deployment <deployment-name> --replicas=<number>

示例:

kubectl scale deployment nginx-deploy --replicas=5

修改 YAML 文件扩缩容
在 nginx-deployment.yaml 中修改 replicas 数量:

spec:replicas: 5

然后执行:

kubectl apply -f nginx-deployment.yaml

2.7、删除 Deployment

方法一:使用命令行

kubectl delete deployment <deployment-name>

示例:

kubectl delete deployment nginx-deploy

方法二:使用 YAML 文件

kubectl delete -f nginx-deployment.yaml


2.8、在命名空间中管理 Deployment

列出某个命名空间的 Deployments:

kubectl get deployments -n <namespace-name>

在指定命名空间中创建 Deployment:

kubectl create deployment nginx-deploy --image=nginx -n <namespace-name>

3、Services管理

3.1、Service 类型简介

  • ClusterIP (默认类型):只能在集群内部访问,通常用于微服务之间的通信。
  • NodePort:通过集群节点的固定端口(30000-32767)对外暴露服务。
  • LoadBalancer:通过外部负载均衡器对外暴露服务(通常用于云服务)。
  • ExternalName:将服务映射为外部域名。

3.2、创建 Service

方法一:使用 kubectl expose

kubectl expose deployment <deployment-name> --type=<service-type> --port=<port> --target-port=<target-port>

示例(创建一个 ClusterIP 类型的 Service,映射到 Nginx 的 80 端口):

kubectl expose deployment nginx-deploy --type=ClusterIP --port=80 --target-port=80

方法二:使用 YAML 文件创建
创建 nginx-service.yaml:

apiVersion: v1
kind: Service
metadata:name: nginx-service
spec:selector:app: nginxports:- protocol: TCPport: 80targetPort: 80type: NodePort

执行命令创建 Service:

kubectl apply -f nginx-service.yaml


3.3、查看 Service 状态

列出所有 Service

kubectl get services

示例输出:

NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
nginx-service   NodePort    10.96.0.1      <none>        80:30001/TCP     5m

查看详细信息

kubectl describe service <service-name>


3.4、访问 Service

curl http://<NodeIP>:30001


3.5、更新 Service

修改 YAML 文件
修改 nginx-service.yaml,然后执行:

kubectl apply -f nginx-service.yaml

手动更新端口或类型:

kubectl edit service <service-name>


3.6、删除 Service

kubectl delete service <service-name>

示例:

kubectl delete service nginx-service

4、ConfigMaps管理 

4.1、创建 ConfigMap

方法一:从命令行创建

kubectl create configmap <configmap-name> --from-literal=<key>=<value>

示例:创建一个包含数据库配置的 ConfigMap:

kubectl create configmap db-config --from-literal=username=root --from-literal=password=123456

方法二:从文件创建

kubectl create configmap <configmap-name> --from-file=<file-name>

方法三:使用 YAML 创建
configmap.yaml 示例:

apiVersion: v1
kind: ConfigMap
metadata:name: app-config
data:app.env: "production"log.level: "info"

执行命令:

kubectl apply -f configmap.yaml


4.2、查看 ConfigMap

kubectl get configmap
kubectl describe configmap <configmap-name>

示例:

kubectl get configmap db-config -o yaml


4.3、在 Pod 中使用 ConfigMap

方式一:作为环境变量

apiVersion: v1
kind: Pod
metadata:name: configmap-example
spec:containers:- name: my-containerimage: nginxenv:- name: USERNAMEvalueFrom:configMapKeyRef:name: db-configkey: username

方式二:作为挂载的文件

apiVersion: v1
kind: Pod
metadata:name: configmap-volume-example
spec:containers:- name: my-containerimage: nginxvolumeMounts:- name: config-volumemountPath: "/etc/config"volumes:- name: config-volumeconfigMap:name: app-config

5、Secrets 管理

Secrets 用于存储敏感数据,例如密码、API 密钥等。数据以 Base64 编码存储。

5.1、创建 Secret

方法一:从命令行创建

kubectl create secret generic <secret-name> --from-literal=<key>=<value>

示例:

kubectl create secret generic db-secret --from-literal=username=root --from-literal=password=mysecretpassword

方法二:从 YAML 文件创建
secret.yaml 示例:

apiVersion: v1
kind: Secret
metadata:name: db-secret
type: Opaque
data:username: cm9vdA==    # "root" 的 Base64 编码password: bXlzZWNyZXRwYXNzd29yZA==    # "mysecretpassword" 的 Base64 编码

执行命令:

kubectl apply -f secret.yaml

Base64 编码命令

echo -n 'myvalue' | base64


5.2、查看 Secret

kubectl get secrets
kubectl describe secret <secret-name>

注意:kubectl describe 不会显示 Base64 解码后的值。

若要查看解码后的值:

kubectl get secret <secret-name> -o jsonpath="{.data.<key>}" | base64 --decode


5.3、在 Pod 中使用 Secret

方式一:作为环境变量

apiVersion: v1
kind: Pod
metadata:name: secret-env-example
spec:containers:- name: my-containerimage: nginxenv:- name: DB_USERNAMEvalueFrom:secretKeyRef:name: db-secretkey: username

方式二:作为挂载的文件

apiVersion: v1
kind: Pod
metadata:name: secret-volume-example
spec:containers:- name: my-containerimage: nginxvolumeMounts:- name: secret-volumemountPath: "/etc/secret"readOnly: truevolumes:- name: secret-volumesecret:secretName: db-secret

💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Kubernetes的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺

🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!

相关文章:

【Kubernetes】常用命令全解析:从入门到实战(上)

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Kubernetes航线图&#xff1a;从船长到K8s掌舵者》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Kubernetes简介 2、安装Kubernetes …...

项目实战(11)-双通道气体压力计V1.0

一. 产品简介&#xff1a; 1、项目背景是在实际应用中需要监控通道内气体的压力&#xff0c;压力计分为两个通道&#xff1b;通道一时实时监控&#xff1b;通道二是保压&#xff0c;设定保压值得上下限后通道内得气体压力值会一直保持在这个范围内。 二. 应用场景&#xff1a…...

Node.js怎么调用到打包的python文件呢

在 Node.js 中调用打包后的 Python 可执行文件&#xff08;如 PyInstaller 生成的 .exe 或二进制文件&#xff09;&#xff0c;可以通过以下步骤实现&#xff1a; 一、Python 打包准备 假设已有打包好的 Python 文件 your_script.exe&#xff08;以 Windows 为例&#xff09;&…...

Transformer 详解:了解 GPT、BERT 和 T5 背后的模型

目录 什么是 Transformer? Transformer如何工作? Transformer 为何有用? 常见问题解答:机器学习中的 Transformer 在技​​术领域,突破通常来自于修复损坏的东西。制造第一架飞机的人研究过鸟类。莱特兄弟观察了秃鹫如何在气流中保持平衡,意识到稳定性比动力更重要。…...

利用二分法进行 SQL 盲注

什么是sql注入&#xff1f; SQL 注入&#xff08;SQL Injection&#xff09;是一种常见的 Web 安全漏洞&#xff0c;攻击者可以通过构造恶意 SQL 语句来访问数据库中的敏感信息。在某些情况下&#xff0c;服务器不会直接返回查询结果&#xff0c;而是通过布尔值&#xff08;Tr…...

如何通过 bugreport 分析 Android 系统日志?

&#x1f4e2; 1. 职业规划篇 来聊聊安卓职业规划&#xff1f;整机开发大专能做么&#xff1f; &#x1f4e2; 2.基础篇 基础篇.前言 基础篇.编译环境搭建 基础篇.源码目录简介 基础篇.系统 mk_bp 讲解 基础篇.开机动画定制 基础篇.定制桌面壁纸、导航方式 基础篇.系统属性、ap…...

安防机器人电源解决方案

安防机器人电源方案简介 随着安防机器人领域技术的不断进步,越来越多的新型传感器,特别是激光雷达(光探测与测距)的广泛应用,以及先进的板载AI处理器的加入,使得机器人能够更加安全、智能地与人类进行互动。然而,这也对机器人的电源系统提出了更高的要求。某安防机器人…...

内网穿透的应用-Ubuntu本地Docker搭建pichome文件管理系统打造个人云相册

文章目录 前言1.关于pichome2.本地部署pichome3.简单使用pichome4. 安装内网穿透5.配置pichome公网地址6. 配置固定公网地址 前言 你是不是也经常遇到这样的尴尬&#xff1a;手机、电脑里堆满了照片和视频&#xff0c;想找一张特定的图片时却像在大海捞针一样无从下手&#xf…...

力扣-栈与队列-1047 删除字符串中的所有相邻重复项

思路 利用栈更新紧邻的元素&#xff0c;和要插入的元素作比较 代码 class Solution { public:string removeDuplicates(string s) {if(s.size() < 2) return s;stack<char> st;st.push(s[0]);for(int i 1; i < s.size(); i){if(!st.empty() && s[i] s…...

旅客服务系统(PSS, Passenger Service System)

1. 系统概述 1.1 系统目标 旅客服务系统(PSS)旨在为旅客提供一站式航空服务,涵盖航班信息查询、机票预订、值机办理、行李托运、订单管理、支付集成等功能。系统通过模块化设计和分布式架构,确保高可用性、高性能、可扩展性和安全性,满足航空公司和旅客的多样化需求。 …...

Linux路径中的‘~‘

本文来自DeepSeek 在Linux中&#xff0c;~ 是用户主目录的简写。具体含义如下&#xff1a; 当前用户的主目录&#xff1a; ~ 代表当前登录用户的主目录。例如&#xff0c;用户 alice 的主目录通常是 /home/alice&#xff0c;~ 就指向 /home/alice。 其他用户的主目录&#xff…...

认识网络安全

一 网络攻击链 踩点-工具准备-载荷投递-漏洞利用-释放载荷-建立通道-目标达成 简化下&#xff1a; 目标侦察&#xff1a;准确识别目标&#xff0c;收集目标详细信息&#xff0c;比如 网络、 邮箱、员工、社会关系、对外提供服务、漏洞 信息等&#xff0c;为 后续攻击做准备。…...

信息科技伦理与道德3-3:智能决策

2.3 智能控制 智能控制算法介绍 智能控制算法的优化&#xff1a;性能提升的秘诀 https://blog.csdn.net/universsky2015/article/details/137309308 案例一&#xff1a;特斯拉自动驾驶汽车未能识别白色卡车导致车祸...

以 Python 为工具搭建的热门旅游景点数据分析系统

系统介绍&#xff1a; 随着计算机技术的飞速发展&#xff0c;计算机系统的应用已广泛渗透到社会的各个领域。大数据的大量应用为人们的生活带来了极大的便利。在此背景下&#xff0c;将热门旅游景点数据分析管理与互联网相结合&#xff0c;利用计算机搭建热门旅游景点数据分析…...

ZooKeeper 技术全解:概念、功能、文件系统与主从同步

引言 随着分布式系统变得越来越复杂&#xff0c;对协调服务的需求也在不断增长。ZooKeeper 作为一个由 Apache 维护的开源分布式协调服务框架&#xff0c;广泛用于 Hadoop 生态系统和其他需要协调的分布式环境中。这一系统旨在解决分布式应用中常见的挑战&#xff0c;如配置管…...

Visual Studio Code 的 AI 编程助手

文章目录 1. 写在最前面2. AI 编程助手2.1 Top 10 AI Extensions for Visual Studio Code2.1.1 脑图概括2.1.2 详细介绍 2.2 10 Best AI Code Tools: Quick and Easy Guide (2024)2.2.1 脑图概括2.2.2 详细介绍 3. Cody 插件试用4. 碎碎念5. 参考资料 1. 写在最前面 最近在研究…...

Kafka的ISR是什么,HW是什么,怎么保证可靠性,Kafka怎么实现顺序消息?为什么Kafka的broker上的topic越多,效率越慢?

目录 1. Kafka 的 ISR 是什么 2. Kafka 的 HW 是什么 3. Kafka 如何保证可靠性 4. Kafka 怎么实现顺序消息 5. 为什么 Kafka 的 broker 上的 topic 越多,效率越慢 1. Kafka 的 ISR 是什么 ISR 即 In-Sync Replicas(同步副本集),是 Kafka 中一个重要的概念,用于保障消…...

Ollama系列---【ollama使用gpu运行大模型】

一、安装CudaToolkit 使用控制台命令查看当前显卡驱动中的cuda版本 nvidia-smi 二、下载CudaToolkit 注意&#xff1a;CudaToolkit版本要低于上面的显卡Cuda版本。 Cuda各版本下载地址&#xff1a;CUDA Toolkit Archive | NVIDIA Developer 下载好之后&#xff0c;一路下一步&a…...

使用C语言实现MySQL数据库的增删改查操作指南

使用C语言与MySQL数据库进行交互,通常涉及使用MySQL提供的C API库。这套API允许开发者在C/C++程序中执行SQL查询,从而实现数据库的增删改查操作。下面,我将详细介绍如何在C语言中实现这些基本操作。 准备工作 安装MySQL开发库:确保你的系统上安装了MySQL服务器以及MySQL开发…...

【Golang学习之旅】Go + Redis 缓存设计与优化(项目实战)

文章目录 业务需求1. 缓存设计2. GoRedis代码实现3. 代码解析4. 性能优化 在本节中&#xff0c;我们将通过一个实际的项目案例&#xff0c;演示如何在 Go 中使用 Redis 实现高效的缓存设计与优化。 业务需求 假设我们正在开发一个电商平台&#xff0c;需要缓存商品信息以提高页…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...