彻底搞懂 functools.lru_cache:原理、用法、坑点与工程化实践

关键词:LRU、缓存、性能优化、纯函数、可哈希、装饰器顺序、TTL、异步缓存、工程实践 为什么要关心 lru_cache? 当你的函数计算昂贵、参数重复且没有副作用时,缓存返回值会显著降低延迟、减少 CPU 消耗。functools.lru_cache 是 Python 标准库自带的“轻量级、进程内...

MySQL 填坑

大量sleep进程 用root账户登录mysql后,显示当前所有进程 mysql > show processlist; +----+-----------------+-----------------+-----------+---------+------+------------------...

pip升级所有包

pip升级全部包 pip install --upgrade pip pip freeze --local xargs -n1 pip install -U 这些命令将首先升级pip本身,然后使用pip freeze命令列出当前安装的所有包,并使用xargs和pip install命令逐个更新这些包...

Python 模块 contextvars

contextvars 是 Python 中的一个模块,用于管理上下文局部状态。上下文局部状态类似于线程局部状态,但它是针对当前上下文而不是针对线程。这个特性在异步编程中特别有用,因为单个线程可能处理多个上下文(例如,处理不同的Web请求)。 contextvars 模块的关键组成部分如下: 上下文...

portainer 集群管理

Portainer 是一个轻量级且直观的开源容器管理工具,专为简化和管理 Docker 和 Kubernetes 环境而设计。它提供了一个用户友好的图形界面,使用户能够方便地管理容器、镜像、网络和卷。 通过docker安装portainer。 portainer/portainer-ce:alpin...

MySQL UDF sys_exec()

问题: mysql中没有sys_exec()用户自定义函数 系统 Ubuntu20.04 MySQL5.7.35 1. 下载代码 从这个仓库下载代码 https://github.com/mysqludf/lib_mysqludf_sys 进入到下载好的文件中 2. 修改Makefile 查看Mak...

Linux创建用户、赋予权限

1.创建新用户 使用 useradd 命令创建一个新用户,并指定一个家目录,指定终端为bash。例如,创建一个名为 newuser 的用户,可以使用以下命令: sudo useradd -m -s /bin/bash newuser 如果用户已经创建了,可以修改这个用户的终端: sudo chsh ...

Flask项目使用ajax发送请求,解决 CSRF

在flask项目中,一般都配置了CSRF,表单提交时,带上csrf_token字段即可,如果是ajax方式提交,需要设置csrf_token const csrfToken = $('meta[name=csrf-token]').attr('content'); const postData = ...

@JsonIgnore

作用:在json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。 使用方法:一般标记在属性或者方法上,返回的json数据即不包含该属性。 如果某个属性在序列化时需要忽略掉但是反序列化时不要忽略,可以使用@JsonProperty(access = JsonProperty....

使用itunes导入电子书到iphone的kindle APP,编辑电子书元数据

电子书格式 mobi格式可以,epub格式不可以! 添加电子书 iTunes版本:12.13.13 iphone版本:17.3.1 第一步,连接 iphone连接itunes,点击如下图 第二步,添加 按照顺序点击 第三步,查看 打开iphone的Kindle APP即可看到电子书 删除电子书 修改...

Python Pydantic 中的 alias 字段别名详解:优雅解决命名规范冲突

在现代软件开发中,我们经常需要处理不同系统之间的数据交换。Python 开发者通常遵循 PEP 8 规范使用 snake_case 命名,而前端 JavaScript 开发者习惯使用 camelCase,数据库可能又有自己的命名约定。如何在保持代码规范的同时实现系统间的无缝对接?Pydantic 的...

世界顶级7大学习法工具:费曼学习法、番茄学习法、西蒙学习法、SQ3R学习法、康奈尔笔记法、模式学习法、社群学习法

自人类文明的曙光照亮地球那一刻,工具就一直陪伴着我们。 石器时代、铁器时代、机器时代、信息化时代,工具解放了人类的双手,实现了物质→能量→信息的三重跨越。 正如《技术史》一书中指出:“工具引领人类历史,成为重要的推动力和分水岭。” 1.费曼学习法 1.1 什么是费曼学习法? 把你学的东西,讲给别人听...

prompt 工程 之 视频生成

提示词的精确度与细节水平直接影响视频内容的质量。采用结构化提示词可以极大提升视频内容的符合度和专业性。 以下是构建提示词的关键组成部分: 提示词 = (镜头语言 +景别角度+ 光影) + 主体 (主体描述) + 主体运动 +场景 (场景描述) + (氛围) 镜头语言: 通过镜头的各种应用以及镜头之间...

监控

查看当前网速 nload命令 nload -t 200 -i 1024 -o 128 -U M devices eth0 查看内存占用 htop 按内存使用率排序 htop --sort-key=M_SIZE 分析磁盘使用情况 ncdu 安装 sudo apt-get install ncdu 查看...

Python 线程池

1. 线程池简介 在现代编程中,尤其是进行高性能和高并发编程时,线程池是一种非常重要的技术。线程池可以有效地管理和复用线程资源,提高程序的执行效率和响应速度。接下来,我们将详细介绍线程与进程的区别,什么是线程池,以及线程池的优势。 1.1 线程与进程的区别 在计算机科学中,线程和进程是两个基本的并发...

Python 开发模式安装

在Python开发中,"开发模式安装"(也被称作“可编辑模式安装”)是一种特殊的安装方式,它允许开发者在不重新安装包的情况下,对代码进行修改并立即看到这些更改的效果。这在开发和调试自定义Python包时非常有用。 如何进行开发模式安装 可以通过以下命令进行开发模式安装: pip install -e...

Windows Docker Desktop开发API端口2375用于远程调用

Docker Desktop 是 Windows 用户开发和管理容器的强大工具,但默认设置下仅允许本地访问 API 端口 2375。 1. 启用 IP Helper 服务 打开服务管理器,找到 IP Helper 服务,将其启动类型设置为自动并启动服务。 2. 配置 Docker 开放 2375 端...

Docker基本操作

根据镜像ID进入对应容器 docker run --rm -it --entrypoint /bin/bash 镜像Id 批量删除已经停止的容器 docker rm $(docker ps -a -f status=exited -q) 这个命令使用docker ps -a -f status=ex...

Linux 打包

.tar (注:tar是打包,不是压缩!) 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName .tar.gz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName ...

如何使用 qpdf 工具消除 PDF 文件的权限限制

如何使用 qpdf 工具消除 PDF 文件的权限限制 PDF 文件是一种常见的文档格式,广泛用于电子书、手册、合同等多种场景。为了保护文件的版权或避免内容被非法复制,许多 PDF 文件会设置权限限制,如禁止复制、打印或编辑。这些限制通常通过 PDF 的加密机制实现。qpdf 是一个开源工具,可以用来...