- 博客(63)
- 收藏
- 关注
原创 数据库事务的特性
原子性:事务是不可分割的,所有操作要么全部成功,要么全部失败。一致性:事务执行后,数据库应保持一致性状态,遵循所有业务规则和数据完整性约束。隔离性:事务的执行不应受到其他并发事务的影响。持久性:一旦事务提交,其对数据库的更改应该持久保存,即使系统发生故障。这些特性共同确保了数据库在处理多个事务时能够保持数据的可靠性和一致性。
2024-08-01 14:13:44 427
原创 MySql锁机制
行级锁:适用于 InnoDB 存储引擎,通常在有索引的情况下使用,锁定的是具体的行,提高了并发性能。表级锁:适用于 MyISAM 存储引擎,或者在执行某些 DDL 操作时使用,锁定的是整个表,可能会影响并发性能。了解锁的机制可以帮助你在设计数据库和事务时更好地优化性能和数据一致性。
2024-08-01 14:03:02 298
原创 Docker部署kafka,Docker所在宿主机以外主机访问
e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://139.226.179.239:9092 把kafka的地址端口注册给zookeeper,若远程访问要改成外网IP,千万注意是外网IP,很多文章只说是宿主机IP, 演示例子上写的是内网IP,很容易被误导。-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口。-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间。
2024-07-19 10:11:46 656 2
原创 关于redis单线程却能支持高并发业务的原因
与多线程模型相比,Redis 的单线程模型避免了线程切换带来的开销,如上下文切换、锁竞争等,这在高并发场景下尤为显著。是 Linux 内核提供的一种高效的 I/O 多路复用机制,用于处理大量并发连接的网络应用程序。尽管 Redis 是单线程的,但是它通过上述技术和优化手段,使得即使在高并发的情况下,仍能保持出色的性能表现。:Redis 内置了丰富的数据结构和高效的算法,如哈希表、跳表等,使得在处理数据时效率极高。),这样可以在等待数据准备就绪的同时,继续处理其他请求,提高了系统的并发处理能力。
2024-07-17 17:16:59 332
原创 关于redis单线程却能支持高并发业务的原因
与多线程模型相比,Redis 的单线程模型避免了线程切换带来的开销,如上下文切换、锁竞争等,这在高并发场景下尤为显著。是 Linux 内核提供的一种高效的 I/O 多路复用机制,用于处理大量并发连接的网络应用程序。尽管 Redis 是单线程的,但是它通过上述技术和优化手段,使得即使在高并发的情况下,仍能保持出色的性能表现。:Redis 内置了丰富的数据结构和高效的算法,如哈希表、跳表等,使得在处理数据时效率极高。),这样可以在等待数据准备就绪的同时,继续处理其他请求,提高了系统的并发处理能力。
2024-07-17 14:41:32 572
原创 react中状态管理useState
这段代码我在运行的时候,后台始终拿到的secret值是null,通过后台、前台打印日志,显示的secret是有值的,但为什么按照顺序执行了setSecret(res.secret)后,然后使用secret的值,没有实时取得res.secret值。解释就是,有延迟,在我执行请求接口2的时候,secret的值还没有更新完成。2.然后请求接口2,携带上接口1返回的密钥参数,请求二维码的状态信息,获取用户信息。直接将接口1拿到的数据进行请求。1.页面挂载后,我先请求后台接口1获取二维码和密钥。
2024-07-17 09:54:48 300
原创 跨域问题出现的原因,怎么解决?
跨域问题在Web开发中是指在浏览器中运行的JavaScript代码试图在不同域名、不同端口或不同协议之间进行访问时所遇到的限制。浏览器出于安全考虑,实施了同源策略(Same-Origin Policy),该策略要求JavaScript只能访问与其所在页面具有相同协议、域名和端口的资源。WebSocket协议:WebSocket协议是一种双向通信协议,它不受同源策略的限制。代理服务器:可以设置一个同源的代理服务器,将跨域请求转发到目标服务器,并将响应返回给前端。// 处理返回的数据。
2024-07-12 09:34:16 301
原创 SSE流式响应遇到的问题记录
例如,在 Nginx 中,可以通过配置 `proxy_buffering` 指令来控制缓冲行为,并根据 `X-Accel-Buffering` 的值进行相应的设置。- 如果 `X-Accel-Buffering` 的值为 "no",表示反向代理服务器应禁用缓冲,即实时将后端服务器返回的数据传递给客户端。总结起来,`X-Accel-Buffering` 请求头参数用于指示反向代理服务器是否缓冲响应数据,提供更好的性能或实时性,具体行为取决于反向代理服务器的配置和实现。# SSE 连接时的超时时间。
2024-06-26 09:54:17 1521
原创 embed_model和llm_model
目的不同:Embedding Model 旨在将文本或数据映射到低维稠密向量空间,以便计算机更好地理解语义;而Language Model 则专注于理解和生成自然语言文本序列。使用场景不同:Embedding Model 主要用于NLP任务中的特征提取和表示学习;Language Model 则用于生成文本、理解上下文等更高层次的语言处理任务。在某些情况下,这两个术语可能会有重叠或交叉,特别是在涉及到深度学习和NLP中使用预训练模型时。因此,具体的区别还需根据具体的上下文和使用情景来分析。
2024-06-21 14:05:50 420
原创 在linux和windows平台启动子进程差异及终止子进程差异
因此,在 Windows 中,子进程的全局变量与父进程的全局变量是完全独立的。在linux操作系统下,执行process.terminate()会传递终止信号给到子进程,但是不会终止子进程,在windows系统下直接终止子进程,子进程中注册的signal.signal(signal.SIGTERM, handle_signal)handle_signal都来不及执行。因此,子进程会拥有与父进程相同的全局变量副本。综上所述,在 Windows 中,父进程对全局变量的修改不会直接影响到子进程中的全局变量。
2024-06-07 10:48:15 398
原创 银河麒麟V10 sp1使用pyautogui进行屏幕截图报错
在银河麒麟操作系统上,系统版本是V10 sp1,窗口系统是Wayland,桌面环境是UKUI,或是银河麒麟操作系统内部做了什么拦截操作吗?使用以上代码在Ubuntu22.04操作系统上进行截屏没有任何问题(桌面环境GNOME,窗口系统Wayland)其中使用向日葵远程银河麒麟操作系统也是黑屏,现在截取屏幕也是黑屏,各种不顺啊。有遇到过在银河麒麟操作系统进行截屏出现黑屏的情况吗?这里新闻有说对窗口截屏的管控。
2024-06-04 14:24:52 586 2
原创 ubuntu系统上,自带了python3,使用apt install python3-tk能安装上tkinter模块,我编译安装了另一个python3.8.8,始终无法将该模块安装
请注意,在使用自行编译安装的Python版本时,需要使用正确的Python解释器和pip版本来运行你的代码。确保你在使用正确的Python版本下执行代码,以及使用正确的pip版本来安装其他Python包。如果你在Ubuntu系统上编译安装了另一个Python版本(例如Python 3.8.8),而无法通过。这样,你就在系统的默认Python和自行编译安装的Python 3.8.8中都安装了。包与你编译安装的Python版本不兼容。在这种情况下,你可以尝试使用以下步骤安装。模块,可能是因为系统的。
2024-05-28 20:38:25 460
原创 使用selenium打开浏览器之后,有浏览器内部的提示设置默认浏览器等,怎么屏蔽或关闭这些提示
当使用Selenium打开浏览器时,可能会遇到浏览器内部的一些提示或弹窗,例如设置默认浏览器的提示。你可以通过配置选项或设置浏览器参数来屏蔽或关闭这些提示。请注意,不同的浏览器和浏览器版本可能具有不同的配置选项和参数。因此,建议查阅相关的浏览器驱动程序文档,了解更多关于禁用或关闭特定提示的详细信息。对于其他浏览器,你可以查阅相关文档或参考其对应的浏览器驱动程序的配置选项,以了解如何禁用或关闭特定的提示或弹窗。
2024-05-28 14:40:28 739
原创 X11,wayland,Xorg,KDE,GNOME它们之间的关系
KDE和GNOME都是为Linux和UNIX系统设计的,它们提供了不同的外观、风格和功能,以满足不同用户的需求和偏好。需要注意的是,虽然Wayland被认为是X11的替代方案,但在过渡期间,X11仍然广泛使用,并且许多桌面环境和应用程序仍然依赖于X11。随着时间的推移,随着Wayland的发展和采用,X11逐渐减少了在新系统上的使用。Wayland是一种用于显示服务器的协议和通信协议栈,旨在替代X11成为新一代Linux和UNIX系统中的图形显示方式。Wayland提供了更简单、更现代化的图形堆栈。
2024-05-28 09:38:32 1597
原创 关于python3中文字符使用unicode表示
是的,汉字的码点是一个整数表示的。Unicode字符集中的每个字符都有一个唯一的整数值,称为Unicode码点或代码点。在计算机中,汉字的码点通常是以整数形式存储和处理的。汉字通常使用Unicode字符集进行表示,而Unicode字符集是一个字符集,不涉及进制的概念。Unicode字符集使用唯一的代码点来表示每个字符,这些代码点是十六进制表示的。函数得到的结果是一个十进制整数,表示该字符在Unicode字符集中的位置。函数将一个汉字转换为对应的Unicode码点,然后使用十六进制表示。
2024-04-29 15:47:40 369
原创 python对一个字符串进行md5加密
在Python中,你可以使用hashlib模块来进行MD5加密。这段代码首先定义了一个md5_hash函数,该函数接受一个字符串作为输入,然后返回该字符串的MD5摘要。你可以调用这个函数并传入需要加密的字符串来获取其MD5加密结果。请注意,MD5算法并不是一个安全的哈希算法,因为它容易受到碰撞攻击。在一些安全场景下,比如密码存储,应该使用更安全的哈希算法,比如SHA-256。
2024-04-29 15:10:19 767
原创 安装docker后部署一个redis服务
安装 Docker 后,您可以使用 Docker Hub 上提供的 Redis 镜像轻松部署 Redis 服务。
2024-04-26 11:13:18 520
原创 安装一个mysql5.7.37版本的数据库应用,端口映射到本机的3306端口
如果您希望 MySQL 数据持久化存储,可以通过挂载本地目录来实现。例如,您可以将 MySQL 数据库文件存储到本地主机上的。通过这些步骤,您应该能够在 Docker 中成功部署 MySQL 5.7.37 并将其端口映射到本机的 3306 端口。现在,您可以在本机应用程序中使用 MySQL 客户端连接到 MySQL 服务。在这个命令中,我们将 MySQL 的 root 用户密码设置为。确保 MySQL 容器正在运行,并且端口已正确映射。,密码是您在运行容器时设置的密码。,您可以根据需要自行更改。
2024-04-26 11:10:27 656
原创 ubuntu22.04版本操作系统安装docker
安装 Docker 在 Ubuntu 22.04 上与其他 Ubuntu 版本大致相同。
2024-04-26 10:40:06 2002 2
原创 apt update、apt upgrade和apt full-upgrade三个命令的区别
通常,当有一些包的依赖关系发生变化时,`apt upgrade` 可能无法解决这些变化,而 `apt full-upgrade` 将会尝试解决这些变化,并在可能的情况下进行更彻底的升级。当您运行 `apt upgrade` 时,APT 将会检查您系统中已安装的软件包,然后检查软件源中是否有更新的版本。`apt update`、`apt upgrade` 和 `apt full-upgrade` 是用于管理 Debian 和 Ubuntu 等基于 Debian 的 Linux 发行版中软件包的命令。
2024-04-26 10:32:33 1930 1
原创 vscode中jsconfig.json文件首行提示错误
在使用react框架开发前端时,文件jsconfig.json首行提示错误,打开设置,勾选如下图这项。
2024-04-25 15:51:06 619 2
原创 npx browserslist@latest --update-db 和npx update-browserslist-db@latest这个命令是更新什么的,为什么要更新
在前端执行变异的时候,控制台提示npx browserslist@latest --update-db 请问这个命令是做什么的。
2024-04-25 15:09:54 1079
原创 python拿到一个时间戳整数计算出时期时间
在上述示例中,我们使用 `datetime.datetime.fromtimestamp()` 方法将给定的时间戳整数 `timestamp` 转换为 `datetime` 对象 `dt`。如果给定的时间戳表示的是毫秒或微秒级别的时间戳,需要进行适当的转换。如果你需要以特定的日期时间格式输出,可以使用 `strftime()` 方法对 `datetime` 对象进行格式化。在 Python 中,你可以使用 `datetime` 模块来计算给定时间戳整数对应的日期时间。
2024-04-24 09:26:43 333
原创 python的datetime模块计算的时间差,total_seconds 和 seconds区别
例如,假设有一个时间间隔为1天、2小时、30分钟和15秒,使用`total_seconds()`方法将返回总秒数:((1 * 24 * 60 * 60) + (2 * 60 * 60) + (30 * 60) + 15) = 105615 秒。2. `seconds`: `seconds`是`datetime.timedelta`对象的一个属性,用于获取时间间隔的秒数部分。在Python的`datetime`模块中,`total_seconds()`和`seconds`都用于计算时间差,但它们有一些区别。
2024-04-22 09:15:37 956
原创 使用selenium执行组合快捷键ctrl+v不生效问题
经过反复测试,网上查阅资料,发现在执行ctrl+v进行粘贴时,绑定一个页面上的元素对象(无论元素对象是否是引用过期或者是粘贴的目标文本区,但前提需要粘贴的目标文本区获取焦点)执行ctrl+v后可以生效。使用selenium进行自动化测试,依次使用快捷键ctrl+a、ctrl+c、ctrl+v对文本进行复制粘贴,发现前两步执行都是没有问题的,但是执行粘贴时,始终无法将文本粘贴到文本区(焦点时已经获取的)
2023-12-19 10:30:41 727
原创 pyautogui.screenshot()截屏报错OSError: screen grab failed
都无法有效将这个问题解决,查了很多网上的分析,有说是安全问题,有说是刚开始用的好好的,运行几分钟之后就不行了。到这里,我有充分理由怀疑,是云上主机锁屏导致,由于先前知道云上主机是自动登录的,并且会禁用了锁屏,因此没有往这个方面去怀疑,后来,通过查阅资料发现,通过mstsc远程后,再断开,通过VNC查看桌面就处于锁屏状态,相当于电脑的显示器看到的就是锁屏状态。后面在执行任务之前,通过代码判断系统是否处于锁屏状态,则通过命令让系统强制重启,这样系统重启后,有自动登录和应用自动重启,就可以顺利截屏了。
2023-11-24 09:38:10 3007
原创 python使用selenium执行测试用例后台chrome进程跑满CPU
python使用selenium实现的自动化测试工具,执行每个用例结束后,在任务管理器中会出现越来越多的后台chrome进程,在python代码中也有执行webdriver.quit()和service.stop()等释放资源的动作,但是这些后台chrome进程不知道是怎么生成的,就是关闭不掉,结果就是主机的CPU被跑满,然后卡死。在网上没有找到问题出现的原因,我的解决方案就是,使用psutil库,执行完一个用例后将后台所有的webdriver启动的chrome进程全部kill掉。
2023-09-26 14:07:50 1404 2
原创 Conda安装及使用手册
Conda 是一个开源的软件包管理系统和环境管理系统,用于安装和管理多个软件包及其依赖项。它可以帮助用户创建虚拟环境,使得不同的项目可以使用不同的软件包和版本,从而避免版本冲突和不兼容性问题。
2023-07-18 11:28:31 3000 1
原创 python三方模块nltk
(Natural Language Toolkit)是一个Python第三方模块,用于处理自然语言处理(NLP)任务。它提供了许多工具和数据集,可以帮助开发人员对自然语言文本进行分词、词性标注、句法分析、语义分析、语料库管理等操作。模块中包括了许多数据集,如著名的Brown语料库、Gutenberg语料库、WordNet等,这些数据集可以帮助用户进行实验和测试。是一个非常强大的Python第三方模块,可以帮助开发人员轻松处理自然语言文本。还提供了文本分类、信息提取、机器翻译、情感分析等功能。
2023-07-12 11:13:49 654
原创 python模块shutil介绍
是一个Python标准库模块,提供了许多用于对文件和文件夹进行复制、移动、删除等操作的函数。模块是Python中一个非常实用的标准库模块,可以帮助开发人员更轻松地处理文件和文件夹的操作。模块封装了许多底层操作系统的功能,可以轻松地在Python中完成文件和文件夹的常见操作。模块还提供了许多其他函数,例如删除文件和文件夹、创建压缩文件等操作。
2023-07-12 11:13:11 677
原创 python第三方的模块gradio
使用Gradio,开发人员可以很容易地将他们的机器学习模型部署在Web界面上,并与用户进行交互,以实时演示模型的预测结果。Gradio提供了一个简单易用的API,使得开发人员可以通过几行代码将他们的模型与Web界面相结合。此外,Gradio还提供了一个在线平台,使得用户可以在没有任何编程经验的情况下,通过简单的拖放操作来部署他们的模型。总的来说,Gradio是一个非常强大和易于使用的Python第三方模块,它使得机器学习模型的展示和交互变得更加容易和直观。
2023-07-12 11:12:16 450
原创 Dockerfile示例说明
创建一个目录/data/repos,并将文件init_spug复制到/usr/bin目录中。将文件nginx.conf、ssh_config、spug.ini和redis.conf分别复制到/etc/nginx/、/etc/ssh/、/etc/supervisord.d/和/etc/目录中。同时,在root用户的.bashrc文件中添加一个指令,以便在bash shell中可以访问/etc/profile中定义的变量。设置卷/data和将容器的80端口暴露给主机。设置系统时区为Asia/Shanghai。
2023-06-13 16:18:17 174 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人