- 博客(659)
- 资源 (3)
- 收藏
- 关注
转载 Redis为什么这么快?
1. 在面试中解释 Redis 之所以快速的原因,可以按照以下要点进行回答:内存存储机制: Redis 的数据存储完全依赖于内存,其读写操作均在内存中进行。由于内存的访问速度远超过磁盘,这赋予了 Redis 在处理数据时极高的读写效率。尤其是在执行简单的数据存取任务时,由于线程在内存中的执行时间极短,主要的延迟来源于网络 I/O,因此 Redis 在应对大量的快速读写请求时展现出了优异的性能。单线程架构: Redis 采用单线程模型来处理客户端请求,这种设计保证了操作的原子性,并消除了多线程环境中的上
2024-12-23 11:27:31
54
转载 python打包exe两种方法
随着Python在各个领域的广泛应用,将Python脚本打包成EXE文件的需求越来越多,尤其是在需要分享应用程序给非技术人员或部署到没有Python环境的设备上时。这种需求推动了打包工具的发展,使得像PyInstaller和auto-py-to-exe这样的工具逐渐成为Python开发者的必备技能。打包Python脚本成EXE文件并不复杂,选择合适的工具,便能轻松应对。在PyInstaller和auto-py-to-exe的帮助下,你将不再为打包问题烦恼,轻松实现Python项目的部署与分享。
2024-12-20 16:25:11
63
原创 Ceph+python对象存储
进行对象存储操作时,使用 Ceph 的 rados Python 库是一个非常直接和高效的方式。下面我将详细介绍如何使用 rados 进行基本的对象存储操作,包括连接到 Ceph 集群、创建池(pool)、写入和读取对象、列出对象等。
2024-12-20 15:15:25
250
原创 Celery某个任务,从datetime.timedelta(seconds=3600)改成 crontab(minute=‘0,15,30,45‘),表数据(触发时机)未改变如何处理
django-celery-beat 使用数据库来存储和管理定时任务,因此当你修改了 beat_schedule 配置后,数据库中的任务不会自动更新。手动更新数据库中的任务配置。使用 django-celery-beat 提供的 update_schedules管理命令,自动同步任务配置。删除旧的任务条目并让 django-celery-beat 重新创建。重启 Celery Beat服务,确保它使用最新的配置。
2024-12-11 15:34:19
801
1
原创 Python 定时发送邮件
这个脚本可以定时自动发送邮件。例如,你可以用它来定时发送生日祝福、提醒事项,或者发送定期报告等。它使用了smtplib库来发送邮件,schedule库来定时执行任务。
2024-11-29 10:26:15
221
转载 Django channel 使用websocket实时聊天通信
同样,当Channels接受WebSocket连接时,它会查询根路由配置以查找使用者,然后在使用者上调用各种功能来处理来自连接的事件。在chat目录中创建一个templates目录。在您刚刚创建的templates 目录中,创建另一个名为的目录 chat,并在其中创建一个名为的文件index.html以保存索引视图的模板。将以下代码放入chat/templates/chat/index.html。在chat目录下创建一个名为的文件routing.py。在chat目录下创建一个名为的文件urls.py。
2024-11-28 10:16:48
83
原创 RabbitMQ 如何保证幂等性,数据一致性
解决方式:用 RabbitMQ 提供的 ack 机制,简单来说,就是你必须关闭 RabbitMQ 的自动 ack,可以通过一个 api 来调用就行,然后每次你自己代码里确保处理完的时候,再在程序里 ack 一把。比如你不是上面两个场景,那做的稍微复杂一点,你需要让生产者发送每条数据的时候,里面加一个全局唯一的 id,类似订单 id 之类的东西,然后你这里消费到了之后,先根据这个 id 去比如 Redis 里查一下,之前消费过吗?如果消费过了,那你就别处理了,保证别重复处理相同的消息即可。
2024-10-31 17:04:11
483
原创 docker部署minio文件服务器
比如我自己的:http://120.76.250.234:9001(可以访问,到2024年11月11日前可以访问,虚拟机快到期了)自定义用户和秘钥安装: admin/admin123456。浏览器输入 AccessKey 和 SecretKey。
2024-09-30 16:47:47
296
转载 Python 并发 vs 并行
如果你对响应延迟极其敏感,那么就不要选择带GC的编程语言(GC的stop the world问题),只能选择C/C++,如果对GC带来的延迟不敏感,那GO甚至Java都是不错的选择,在高并发又要求高性能的场景,还是尽量别选择Python了。而在满足并行必要条件的情况下,采用并发设计的程序是可以并行执行的。从进程到线程到协程,从内存资源占用和上下文开销来说,都是越来越小的,也即越来越轻量级,这也意味着在同样的服务器资源的情况下,相比进程我们可以创建更多数量的线程,而相比线程我们可以创建更多数量的协程。
2024-09-23 15:19:22
330
原创 Docker-Compose配置文件docker-compose.yml详解
一份标准的docker-compose.yml文件应该包含version、services、networks三大部分,其中最关键的就是services和networks两个部分。目前主流的为 3.x 其支持 docker 1.13.0 及其以上的版本。Compose 文件格式有3个版本,分别为1, 2.x 和 3.x。
2024-04-12 14:44:28
4825
转载 Go进行docker编译的时候传入变量
使用syscall可以将参数值传入docker打包镜像中使用-e TASKID=abc进行镜像编译的可以传入参数到工程中。
2023-11-20 15:03:18
331
转载 Prometheus 服务自动发现机制介绍
Prometheus Server的数据抓取工作于Pull模型,因而,它必需要事先知道各Target的位置,然后才能从相应的Exporter或Instrumentation中抓取数据, 对于小型系统来说,通过static_configs就可以解决此问题,这也是最简单的配置方法;consul是一款基于golang开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的服务,提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能。
2023-11-20 14:26:55
830
转载 selenium 定位元素(并集)
说明:通过元素的id属性来定位元素,具有唯一性,定位后基本不会重复前提:元素有id属性id定位方法:find_element(by=By.ID, value=’ ‘)或 find_element (“id”, value=’ ')示例:打开百度搜索页面,通过id定位,输入搜索关键字说明:通过name属性来指定元素名称,相对少见,但容易重名前提:元素有name属性name定位方法:find_element(by=By.NAME, value=’ ')或 同上示例:打开百度搜索页面,通过name定位
2023-04-12 10:48:37
1361
转载 Selenium 鼠标滚动操作
scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。–scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。–scrollHeight 获取对象的滚动高度。–scrollWidth 获取对象的滚动宽度。
2023-03-27 10:07:41
3377
原创 selenium显示和隐式等待
当采用Ajax技术时,动态加载的元素并不是立即出现的,会受网速或其他因素的影响。此时如果使用selenium来操作,有可能就会获取不到该元素而报错,为了防止这种情况,selenium提供了两种等待方式:隐式等待:等待指定时间后再获取该元素。如果还获取不到就报错。显示等待:在指定时间内,如果元素出现则去继续操作,如果超时就报异常。(较常用)
2023-03-24 14:25:09
203
原创 selenium 模拟正常的浏览器,而不是机器操作
selenium启动的浏览器,会非常容易的被检测出来,通常可以通过window.navigator.webdriver的值来查看,如果是true则说明是使用了selenium模拟浏览器,如果是undefined则通常会被认为是正常的浏览器。
2023-03-24 14:14:09
1569
原创 Selenium 爬虫常用技巧(pyautogui,pyperclip )
pyautogui的write、typewrite、press等方法均无法输入中文,可以用pyperclip包,pyperclip.copy(‘中国’) ,然后使用pyautogui.hotkey(‘ctrl’,‘v’)来操作。记住中间要有个time.sleep(1) 停顿1秒,要不会粘贴不上去。屏幕截图,pyautogui提供了一个方法screenshot(),可以返回一个Pillow的image对象。
2023-03-22 18:15:39
777
转载 python 获取本周 ,上周,本月,上月,本季,上季,今年, 去年的第一天和最后一天
【代码】python 获取本周 ,上周,本月,上月,本季,上季,今年, 去年的第一天和最后一天。
2022-12-23 17:17:10
484
转载 在Python里面判断多个变量全部/任意不为空
我们在写Python 函数的时候,可能会需要判断传入的多个参数是否同时为空/None/False,或者是否有任何一个不为空/None/False。它也是接受一个列表,列表里面只要有一个元素不为None False 空列表/空字符串/空元组/空……all关键字接受一个列表,这个列表里面的多个元素必需同时不为None False 空列表/空字符串/空元组/空。实际上,在Python里面有两个内置的关键字all和any可以快速实现这个目的。这样写虽然可以达到效果,但是要多写几个and或者or总是有点麻烦。
2022-12-23 17:14:32
3254
转载 python 常用校验方法总结
python在执行代码过程是不知道这个字符是什么意思的、是否是中文,而是把所有代码翻译成二进制也就是000111这种形式,机器可以看懂的语言。也就是说在计算机中所有的字符都是有数字来表示的。汉字也是有数字表示的,Unicdoe4E00~9FFF表示中文,所以如果一个字符的utf-8编码在这个区间内,就说明它是中文。
2022-12-23 16:23:37
2484
转载 FastAPI框架对请求参数的接收验证Path, Query, Body
FastAPI框架自带了对请求参数的验证,包括在路径中的参数、请求的参数以及Body中的参数,使用Path提取和验证路径参数;使用Query提取和验证?请求中的参数,使用Body将参数让客户端由body(默认application/json方式)传入。#示例python代码 from fastapi import FastAPI , Path , Query , Body。
2022-12-23 16:15:52
1860
转载 python3 安装和卸载
一、默认情况下,linux自带python,查看python版本:python --version,如果已经安装了python3则不用装了。二、下载安装包,找到要下载版本的tgz文件,Python-3.8.0.tgz(以3.8.0版本为例),下载。七、 编译源码并执行源码安装,如图,则代表安装完成,可以看到setuptools和pip也安装成功了。六、进入Python-3.8.0目录,配置安装目录,这里的安装目录对卸载的时候很友好,建议配置。九、输入python3,查看是否安装成功, 如图, 安装成功。
2022-12-23 15:50:48
5080
原创 python 配置uwsgi 启动Django框架
uwsgi启动的linux shell命令,项目在/home/oper/simp/Weekreport下。编写uwsgi.ini,以wsgi方式启动uwsgi,此时无法通过web访问的方式测试是否启动,在/etc/nginx/conf.d下新建一个uwsgi.conf。如控制台出现以下提示,八成是成功了。编写test.py测试uwsgi。启动uwsgi服务,设置开机启动。
2022-12-23 15:28:46
684
转载 Python IP地址处理IPy模块
先下载源码,地址:ps://pypi.python.org/pypi/IPy/">,然后解压后使用命令python setup.py install安装。实例介绍几个常用方法,包括方向解析名称、IP类型、IP进制转换、网络地址网段地址转换。ipy模块用法: 一个自动识别IP地址、子网、方向解析、IP类型等信息的脚本。
2022-12-22 16:52:31
647
原创 Twaver 区域点击事件
参照官网: http://doc.servasoft.com/twaver-document-center/recommended/twaver-html5-guide/vector-and-data-binding/您可以把这个区域,注册成一个图片,然后设置成网元设置成这个图片。
2022-12-22 10:59:38
240
原创 Twaver画拓扑图,点击图片空白区域也能被选中(网元靠近,选择的问题)
【代码】Twaver画拓扑图,点击图片空白区域也能被选中(网元靠近,选择的问题)
2022-12-22 10:56:01
234
Django项目开发Demo
2019-11-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人