你好,我是盆子,00年的国企程序员。目前正在探索各种副业,分享互联网一些有意思的东西,微信pzistart1。 文末有总结。 前言 最近一个月在弄闲鱼无货源的项目,遵循着一机一卡一号的原则,手机从1台也变成了3台。 频繁的切换手机看闲鱼app,看有没有客户发来咨询,是一件十分很繁琐的事情。 于是乎,我想能否通过RPA的方式,监听闲鱼消息,不需要一直切换看,而是只需关注一台手机,有咨询的时候再打开备用机,回消息。 效果展示 当备用机收到闲鱼客户的消息后,会将该消息转发到主力机的微信中。 消息转发用的是pushplus,一天可以免费推送200个消息,还是很香的。不会用的看看官方文档就会了。 通知...

  lLaz4t1Dsv4b   2023年12月28日   52   0   0 Python

一、爬取目标 大家好,我是盆子。今天这篇文章来讲解一下:使用Java爬虫爬取百度搜索结果。 首先,展示爬取的数据,如下图。 爬取结果1: 爬取结果2: 代码爬取展示: 可以看到,上面爬取了五个字段,包括 标题,原文链接地址,链接来源,简介信息,发布时间。 二、爬取分析 用到的技术栈,主要有这些 Puppeteer网页自动化工具Jsoup浏览器元素解析器Mybatis-Plus数据库存储 2.1网页结构分析 打开百度搜索,搜索“手机”二字,可以看到下面这样的搜索结果,我们需要爬的信息都在上面。 爬取网页元素分析1: 尝试去分析它的网页结构: 爬取网页元素分析2: 打开控制台F1...

  lLaz4t1Dsv4b   2023年11月12日   52   0   0 Python

今天看黑马redis的课,里面讲到了一个事务注解不生效的问题。 究其原因,就在于Spring中事务注解生效的条件。那么接下来就说一下自己的心得。 查了一下资料,就是说如果想让@Transactional注解生效,那么就只有当被代理类对象调用它的事务方法时,事务注解才会起作用。 那如何才能创建代理对象呢,这个Spring也帮我们做好了。 只要使用注入bean的方式(也就是依赖注入的方式)去创建bean对象,该bean对象调用被@T注解了的方法,那么就会走代理类,从而@T注解就起作用了。 以下说一下例子吧 publicclassVoucherOrderServiceImplimplements...

  lLaz4t1Dsv4b   2023年11月01日   70   0   0 Java

把黑马的redis实战看了将近一半,自己也做了挺多思考,现在对于Redis的使用,以及业务方面的思考,有了更深刻的理解。 使用缓存能够加快数据的查询速度,提高用户的使用感受,对于经常需要访问的数据,都可以放到缓存中,这样也能给数据库减少压力。 但是,使用缓存之后,就有许多问题需要解决,包括业务场景的考虑。 1.缓存和数据库一致性的问题 这个问题是确保用户能够从缓存中访问到最新的数据。-一般需要考虑的场景就是:更新了数据库,那么我们的缓存也要更新。否则用户去查数据走缓存,那么拿到的数据就可能是假的。 如何去更新也是有技巧,能够确保不做过多的无效操作,也要确保用户能拿到最新数据。 根据学习,...

  lLaz4t1Dsv4b   2023年11月01日   51   0   0 Java

基于redis的认证方式分析 redis解决短信验证码时效性,以及使用token的方式判断是否登录的问题。(没用jwt)这里面使用两个拦截器的方式解决:1.给token有效期刷新2.判断用户是否已登录 目前验证用户是否已登录,仍然是用到redis和服务端程序去判断,这个和使用session的判断方式有点相似,因为也会用到服务端资源。但是token与session还是有非常大的不同,认证通过后,(认证信息)session都是保存在内存中(服务端服务器中)占内存,如果是分布式的架构,那么也会影响性能。 而对于token的方式,认证通过后,(认证信息)token都是保存在redis中的,即使是分布式...

  lLaz4t1Dsv4b   2023年11月01日   78   0   0 Java

今天对这些内容进行了一个复习,以写demo加做笔记的形式 stream能够更加优雅的处理集合、数组等数据,让我们写出更加直观、可读性更高的数据处理代码 创建steam流的方式 set、list能够直接通过.stream()的形式创建steam流而数组需要通过Arrays.stream(arr);Stream.of(arr);map需要通过entrySet()方法,先将map转换成Set<Map.Entry<String,Integer>>set对象,再通过set.stream()的方式转换 stream中的api比较多 / @authorPzi @create2022-...

  lLaz4t1Dsv4b   2023年11月01日   80   0   0 Java

今天又复习了一下索引,做一个总结吧 主要就是复习了索引分类概念,索引使用,SQL优化等三个方面 1.主键索引,唯一索引,常规索引; 对于唯一索引,同一个表中可以创建多个,用作创建唯一索引的字段,不能有重复,在表中该字段值是不能呢重复的如上图,根据phone这个字段创建了一个唯一索引 常规索引,用作创建常规索引的字段,在表中该字段值是可以重复的 2.索引使用 主要就是再次熟悉了索引的创建,查看等方面,并且将命令都能很熟练的敲出来创建create[unique|fulltext]index索引名字on表名(字段名);查看showindexfromtable表名; SQL优化 这个优化相当于一套思路...

  lLaz4t1Dsv4b   2023年11月01日   57   0   0 Java

服务器装好Docker环境,并且开放docker端口且加密给外部访问参考:https://www.cnblogs.com/haoxianrui/p/15322508.html1-docker-开启远程访问 springboot中进行配置多模块项目,在最外层的pom文件中进行build配置 <build> <!--使打包的jar包名称就没有版本号--> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.ap...

  lLaz4t1Dsv4b   2023年11月01日   83   0   0 Java

反向代理配置成功首先,Nginx和Java后端都运行在云服务器的docker容器中。ps:需要确保云服务器端口正常开放,以及两个容器都能被正常的访问。现在想让ng做反向代理达到如下目的:通过前端url地址的映射,来访问后端的接口。反向代理流程:前端url地址=》ng服务器=》后端服务器。 usernginx; worker_processesauto; error_log/var/log/nginx/error.lognotice; pid/var/run/nginx.pid; events{ worker_connections1024; } http{ include/etc/ngi...

  lLaz4t1Dsv4b   2023年11月01日   120   0   0 Java

适配器模式p...概括:在适配器类Adapter中,将现有接口Adaptee中的方法作为数据源传入适配器类,然后转换成目标接口Target中的方法。如果客户端要调用,那么就调用Adapter类对象且传入Adaptee对象即可。Target目标接口:定义系统的需求规范Adapter适配器类:实现目标接口,将Adaptee(类似数据源)经过处理实现了Target定义的功能Adaptee现有接口:类似于能够提供数据,供适配器优化处理实现新的需求 ●对象适配器适配器eg:将交流电转换成直流电系统需要使用现有的类,而此类的接口不符合业务需求。需要将现有的类和系统做一个兼容处理,就可以用到适配器模式。提高...

  lLaz4t1Dsv4b   2023年11月01日   74   0   0 设计模式

mongo中的日期,在显示上,会比我们正常的时间少8h。 如果向mongo中插入数据,数据库显示的时间会少8h 如果从mongo中查出数据,那么在idea中会是正常的;而如果是在datagrip/navicat中查,那么显示的时间还是少了8h 这只是显示的问题,而对实际操作没有影响。我们在存入数据或者说查找数据的时候,只需要根据真实的业务上需要的时间去操作即可。 还有一个就是mongoTemplate查找的时候,要传入字符串,否则会查不到。我想这个原因就和redis中只能存储字符串一样的道理吧。 一个业务流程: 查找条件是:在Java代码中定义一个data类型的ArrayList,然后查找mo...

  lLaz4t1Dsv4b   2023年11月01日   299   0   0 NoSQL

元数据锁SHARE_READ/EXCLUSIVE: 共享锁:在DQL/DML的时候给表加SHARE_READ/WRITE锁,与排它锁互斥 作用:在A事务未提交的情况下,B事务不能修改表结构 排他锁:在DDL的时候给表加EXCLUSIVE锁,与共享/排他锁都互斥。 作用:修改表结构的时候不允许执行DQL/DML 意向锁IS/IX: 意向共享锁IS:执行select...lockinsharemode时,会加行共享锁,以及对表加IS 意向写锁IX:执行DML语句时,会加行写锁,同时对表加IX 作用:可以更快的知道能否加表锁,否则的话要一行一行的扫描来判断是否能够加表锁 对于同一张...

  lLaz4t1Dsv4b   2023年11月01日   101   0   0 MySQL

changebuffer 一块存储了更新操作的缓冲区。它存在于MySQL的bufferpool中。 它是怎么作用的:对于普通索引,如果更新操作的目标page页不在内存中,那么会先将这些更新操作记录在changebuffer中。等到select操作将该目标page页查询到内存时会执行更新。这样减少了随机访问磁盘的次数。 对于唯一索引,由于执行更新操作时必须先将目标page页读取到内存中判断唯一性,因此没有必要使用该buffer,还能减少维护成本。 适用场景:写多读少的场合。多次更新操作,然后同时mergebuffer中的记录,最大限度的利用了一次磁盘访问。如果是普通索引,在更新完之后马上就查询刚...

  lLaz4t1Dsv4b   2023年11月01日   113   0   0 MySQL

前置知识 涉及到的几个概念:隐藏字段,undolog,readview (每个表中的)隐藏字段:最后修改记录的事务id,回滚指针 undolog:在插入/更新数据的时候记录回滚日志 当前读:读取的是记录的最新版本,在执行的时候会加锁,防止其他并发事务修改该记录select...forupdate、update、insert、delete(排他锁)都是一种当前读 快照读:读取的可能是记录的可见版本,可能是历史记录 对MVCC理解: 实现了事务隔离每次开启事务都会创建一个readview,以及回滚日志undolog,从而会形成一条回滚链关闭事务那么readview也会被关闭 回滚日志何时被清除...

  lLaz4t1Dsv4b   2023年11月01日   124   0   0 MySQL

前置知识 Usingfilesort:表示需要用到sortbuffer内存空间进行排序sortbuffer是一块可调整的内存空间,如果需要排序的数据量太大而空间不够,将用到磁盘临时文件来排序,效率很低 什么情况下会用到sortbuffer来排序? 不能根据索引直接知道排序结果,就需要用到sortbuffer 排序的执行情况? 表T:id(primarykey),city(key),name,age等字段 explainselectcity,name,agefromTwherecity='gz'orderbyname; -走了索引(但是是非覆盖索引),需要排序,需要进行回表查询 -Usingin...

  lLaz4t1Dsv4b   2023年11月01日   93   0   0 MySQL
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~