自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 瑞数6代逆向

2024-03-13 22:45:35 611 1

原创 瑞数5代逆向

2024-03-13 22:44:56 383

原创 瑞数4代逆向

2024-03-13 22:44:04 283

原创 小红书 x-s x-t x-common

搜索用户页面请求ok。详情页面评论请求ok。

2024-01-28 21:39:32 721

原创 抖音 X-Bogus

完美过X-Bogus。

2024-01-28 21:33:33 375 1

原创 docker容器

docker容器

2022-04-04 23:17:31 1260

原创 docker镜像

docker镜像

2022-04-04 11:07:33 748

原创 docker安装

docker安装

2022-04-04 10:57:38 705

原创 Supervisor

supervisor是进程管理工具安装supervisor对python3支持不好,须使用python2sudo pip install supervisor配置运行echo_supervisord_conf命令输出默认的配置项,可以如下操作将默认配置保存到文件中echo_supervisord_conf > supervisord.confvim 打开编辑supervisord.conf文件,修改[include]files = relative/directory/*.in

2021-12-29 22:58:53 133

原创 Gunicorn使用

Gunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器。从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器与各种Web框架兼容,实现非常简单,轻量级的资源消耗。Gunicorn直接用命令启动,不需要编写配置文件,相对uWSGI要容易很多。安装gunicornpip install gunicorn查看命令行选项: 安装gunicorn成功后,通过命令行的方式可以查看gunicorn的使用信息。gunicorn -h直接运行:#直接运行,默认启动的12

2021-12-29 22:55:26 641

原创 单元测试基本写法

为什么要测试Web程序开发过程一般包括以下几个阶段:[需求分析,设计阶段,实现阶段,测试阶段]。其中测试阶段通过人工或自动来运行测试某个系统的功能。目的是检验其是否满足需求,并得出特定的结果,以达到弄清楚预期结果和实际结果之间的差别的最终目的。测试的分类测试从软件开发过程可以分为:单元测试对单独的代码块(例如函数)分别进行测试,以保证它们的正确性集成测试对大量的程序单元的协同工作情况做测试系统测试同时对整个系统的正确性进行检查,而不是针对独立的片段在众多的测试中,与程序开发人员最密切的

2021-12-29 22:52:51 6117

原创 Python elasticsearch 全文检索实现以及suggest查询

安装 pip install elasticsearch对于elasticsearch 5.x 版本 需要按以下方式导入from elasticsearch5 import Elasticsearch# elasticsearch集群服务器的地址ES = [ '127.0.0.1:9200']# 创建elasticsearch客户端es = Elasticsearch( ES, # 启动前嗅探es集群服务器 sniff_on_start=True,

2021-12-29 22:39:18 618

原创 elasticsearch查询

1 基本查询根据文档ID curl -X GET 127.0.0.1:9200/articles/article/1 curl -X GET 127.0.0.1:9200/articles/article/1?_source=title,user_id curl -X GET 127.0.0.1:9200/articles/article/1?_source=false查询所有curl -X GET 127.0.0.1:9200/articles/article/_search?_sou

2021-12-29 22:28:13 132

原创 Logstash导入数据

使用logstash 导入工具从mysql中导入数据Logstach安装sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch在 /etc/yum.repos.d/ 中创建logstash.repo文件[logstash-6.x]name=Elastic repository for 6.x packagesbaseurl=https://artifacts.elastic.co/packages/6.x/yum

2021-12-29 22:24:07 439

原创 Elasticsearch 文档

一个文档的实例{ "name": "John Smith", "age": 42, "confirmed": true, "join_date": "2014-06-01", "home": { "lat": 51.5, "lon": 0.1 }, "accounts": [ { "type": "facebook

2021-12-29 22:20:55 289

原创 Elasticsearch索引与类型

索引查看索引curl 127.0.0.1:9200/_cat/indices 请求curl 127.0.0.1:9200/_cat可获取用于查询的名称创建索引索引可以在添加文档数据时,通过动态映射的方式自动生成索引与类型。索引也可以手动创建,通过手动创建,可以控制主分片数目、分析器和类型映射。PUT /my_index{ "settings": { ... any settings ... }, "mappings": { "type_one": { ..

2021-12-27 22:09:34 927

原创 IK中文分析器

Github:https://github.com/medcl/elasticsearch-analysis-ik下载完scp到远程服务器安装sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install file:///home/python/elasticsearch-analysis-ik-5.6.16.zip重新启动sudo systemctl restart elasticsearch 测试:...

2021-12-27 21:57:07 2740

原创 Elasticsearch集群

Elasticsearch 尽可能地屏蔽了分布式系统的复杂性。这里列举了一些在后台自动执行的操作:分配文档到不同的容器 或 分片 中,文档可以储存在一个或多个节点中按集群节点来均衡分配这些分片,从而对索引和搜索过程进行负载均衡复制每个分片以支持数据冗余,从而防止硬件故障导致的数据丢失将集群中任一节点的请求路由到存有相关数据的节点集群扩容时无缝整合新节点,重新分配分片以便从离群节点恢复节点:一个运行中的 Elasticsearch 实例称为一个 节点,集群是由一个或者多个拥有相同 cluste

2021-12-27 21:27:38 2106

原创 Elasticsearch原理

简介与原理Elasticsearch是一个基于Lucene库的搜索引擎。Elasticsearch是最受欢迎的企业搜索引擎Elasticsearch 是一个实时的分布式搜索分析引擎,它被用作全文检索、结构化搜索、分析以及这三个功能的组合Elasticsearch 属于面向文档的数据库Elasticsearch 有2.x、5.x、6.x 三个大版本搜索的原理——倒排索引(反向索引)、分析、相关性排序倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引

2021-12-27 21:18:16 2186

原创 IM即时通讯

即时通讯(Instant Messaging)是一种基于互联网的即时交流消息的业务。类型可分为两种:在线推送适用:web页面 和 App自己构建IM服务器使用WebSocket 采用成熟的框架方案Socket.IO 对于App还可自己封装socket使用第三方IM服务商提供的服务离线推送适用:App对于iOS,使用APNs对于andorid,使用FCM(国外)或第三方IM服务商提供的服务提供第三方IM服务的服务商有:网易、融云…需求场景:服务器主动给客户端推送消息用户下了订单,

2021-12-27 21:06:31 3194

原创 RPC远程调用

1.啥是RPC?远程过程调用(英语:Remote Procedure Call,缩写为 RPC,也叫远程程序调用)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。广义我们可以将所有通过网络来进行通讯调用的实现统称为RPC。按照这样来理解的话,那我们发现HTTP其实也算是一种RPC实现。狭义区别于HTTP的实现方式,在传输的数据格式上和传输的控制上

2021-12-27 20:45:41 2334

原创 APScheduler定时任务

APScheduler (advanceded python scheduler)是一款Python开发的定时任务工具。文档地址 https://apscheduler.readthedocs.io/en/latest/userguide.html#starting-the-scheduler特点:不依赖于Linux系统的crontab系统定时,独立运行可以动态添加新的定时任务,如下单后30分钟内必须支付,否则取消订单,就可以借助此工具(每下一单就要添加此订单的定时任务)对添加的定时任务可以做持

2021-12-27 20:03:07 2737

原创 缓存穿透和雪崩

1) Cache Aside更新方式先更新数据库,再更新缓存。这种做法最大的问题就是两个并发的写操作导致脏数据。两个并发更新操作,数据库先更新的反而后更新缓存,数据库后更新的反而先更新缓存。这样就会造成数据库和缓存中的数据不一致,应用程序中读取的都是脏数据。先删除缓存,再更新数据库。这个逻辑是错误的,因为两个并发的读和写操作导致脏数据。假设更新操作先删除了缓存,此时正好有一个并发的读操作,没有命中缓存后从数据库中取出老数据并且更新回缓存,这个时候更新操作也完成了数据库更新。此时,数据库和缓存中的数据不

2021-12-27 19:33:58 2101

原创 缓存有效期与淘汰策略

有效期 TTL (Time to live)设置有效期的作用:节省空间做到数据弱一致性,有效期失效后,可以保证数据的一致性Redis的过期策略三种:定时过期每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。 setex('a', 300, 'aval') setex('b', 600, 'bval')惰性过期只有当访问一个key时,才会判断该ke

2021-12-26 22:00:21 2225

原创 缓存的设计

缓存架构脑中的直观反应计算机体系结构中的缓存多级缓存SQLAlchemy起到一定的本地缓存作用在同一请求中多次相同的查询只查询数据库一次,SQLAlchemy做了本地缓存(类似Django中的Queryset查询结果集)使用Redis构建一层缓存缓存数据在设计缓存的数据时,可以缓存以下类型的数据例如:验证码、用户状态 如:user:{user_id}: enable数据库记录:Caching at the object level以数据库对象的角度考虑, 应用更普遍例如,

2021-12-26 21:51:44 2495

原创 CDN理解

CDN全称:Content Delivery Network或Content Distribute Network,即内容分发网络是将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。基本思路尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据

2021-12-26 21:38:20 2196

原创 对象存储(七牛云)

需求:如用户头像、文章图片等数据需要使用文件存储系统来怎么保存呢?方案:自己搭建文件系统服务选用第三方对象存储服务今天我们就以七牛云为例:http://www.qiniu.com使用:注册新建存储空间使用七牛SDK完成代码实现七牛Python SDK 网址 [https://developer.qiniu.com/kodo/sdk/1242/python](https://developer.qiniu.com/kodo/sdk/1242/python)安装SDKpip insta

2021-12-26 21:34:19 2546

原创 JWT禁用问题

需求:token颁发给用户后,在有效期内服务端都会认可,但是如果在token的有效期内需要让token失效,该怎么办?此问题的应用场景:用户修改密码,需要颁发新的token,禁用还在有效期内的老token后台封禁用户解决方案在redis中使用set类型保存新生成的tokenkey = 'user:{}:token'.format(user_id)pl = redis_client.pipeline()pl.sadd(key, new_token)pl.expire(key, token有

2021-12-26 21:26:49 2266

原创 Python的JWT库

独立的JWT Python库itsdangerousJSONWebSignatureSerializerTimedJSONWebSignatureSerializer (可设置有效期)pyjwthttps://pyjwt.readthedocs.io/en/latest/安装 pip install pyjwt实例:import jwtencoding_jwt = jwt.encode({'some':'payload'},'secret',algorithm='HS256')pr

2021-12-26 21:21:08 2805

原创 JWT & JWS & JWE

JWT & JWS & JWEJson Web Token(JWT)JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在两个组织之间传递安全可靠的信息。现在网上大多数介绍JWT的文章实际介绍的都是JWS(JSON Web Signature),也往往导致了人们对于JWT的误解,但是JWT并不等于JWS,JWS只是JWT的一种实现,除了JWS外,JWE(JSON Web Encryption)也是JWT的一种实现。JWT与JWE的两种实现方式:

2021-12-26 21:04:40 1735

原创 Redis高级使用

1 Redis事务Redis提供了一定的事务支持,可以保证一组操作原子执行不被打断,但是如果执行中出现错误,事务不能回滚,Redis未提供回滚支持。multi 开启事务exec 执行事务例如:127.0.0.1:6379> multiOK127.0.0.1:6379> set a 100QUEUED127.0.0.1:6379> set b 200QUEUED127.0.0.1:6379> get aQUEUED127.0.0.1:6379> ge

2021-12-26 20:58:20 1593

原创 数据库优化

数据库优化

2021-12-26 20:39:20 1092

原创 分布式ID选择方案

方案选择UUIDUUID是通用唯一识别码(Universally Unique Identifier)的缩写,开放软件基金会(OSF)规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素。利用这些元素来生成UUID。UUID是由128位二进制组成,一般转换成十六进制,然后用String表示。例如:550e8400-e29b-41d4-a716-446655440000UUID的优点:通过本地生成,没有经过网络I/O,性能较快无序,无法预测他的生成顺

2021-12-26 20:29:24 931

原创 JS逆向山东科技职业学院学生平台登录接口

我们看到password是加密值,我们搜索一下,password,打断点触发一下第一句很明显,获取密码,第二句就是获取一个keypair,返回一个key,第三句就是将密码反转一下,第四句就是加密字符串,我们看不到我们可以继续执行,我们进去之后发现是RSA加密,我们使用execjs执行js,把代码修改一下,getpair这个是一个接口获取key:https://ca.sdvcst.edu.cn/cas/v2/getPubKey,我们将这个json中两个参数加上密码传给js,最终会给我们最终的加密.

2021-12-02 12:51:50 1568 1

原创 SQLAlchemy操作(ORM增删改查)

1 新增user = User(mobile='15612345678', name='itcast')db.session.add(user)db.session.commit()profile = Profile(id=user.id)db.session.add(profile)db.session.commit()对于批量添加也可使用如下语法db.session.add_all([user1, user2, user3])db.session.commit()查询all()

2021-09-18 23:03:44 1045

原创 SQLAlchemy映射构建

1 简介SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQLAlchemy首次发行于2006年2月,并迅速地在Python社区中最广泛使用的ORM工具之一,不亚于Django的ORM框架。Flask-SQLAlchemy是在Flask框架的一个扩展,其对SQLAlchemy进行了封装,目的于简化在 Flas

2021-09-18 22:56:58 1114

原创 数据库-理解ORM

作用省去自己拼写SQL,保证SQL语法的正确性一次编写可以适配多个数据库防止注入攻击在数据库表名或字段名发生变化时,只需修改模型类的映射,无需修改数据库操作的代码(相比SQL的话,可能需要同步修改涉及到的每一个SQL语句)使用ORM的方式选择先创建模型类,再迁移到数据库中优点:简单快捷,定义一次模型类即可,不用写sql缺点:不能尽善尽美的控制创建表的所有细节问题,表结构发生变化的时候,也会难免发生迁移错误先用原生SQL创建数据库表,再编写模型类作映射优点:可以很好的控制数据库表结.

2021-09-18 22:52:10 648

原创 Pycharm远程开发操作

Pycharm远程开发操作可以在Windows中使用Pycharm编写代码,而代码的调试运行可以使用远程服务器中的python解释器。在本地创建好工程项目(或从git上clone下代码)后,用Pycharm打开:1.打开「Tools」设置 「Deployment」2.选择SFTP3.设置服务器名字4.设置服务器信息1.测试服务器连接是否可用2.设置上传代码的目录映射3.打开设置,设置远程Python解释器4.选择已存在的服务器设置5.选择Create 复制服务器设置到解

2021-09-18 22:48:58 835

原创 windows10部署YApi接口管理工具

环境安装MongodbV4.4.8下载链接:https://www.mongodb.com/try/download/communityNode.js,采用10.8.0,用新12、14新版本部署一直报错,百度无解,就采用10版本来部署下载完全部安装,YApi依赖于Mongodb,记得启动Mongodb数据库,运行mongodb数据库,也不用命令启动了下载YApi打开cmd,使用命令:npm install -g yapi-cli --registry https://registr

2021-09-06 11:04:00 772

原创 Flask-Restful

1.第一个Flask-Restfulfrom flask import Flaskfrom flask_restful import Resource, Apiapp = Flask(__name__)api = Api(app)class HelloWorldResource(Resource): def get(self): return {'hello': 'world'} def post(self): return {'msg

2021-09-06 10:31:23 525

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除