自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 es切片和集群

2.Node 节点:集群中的一个节点,节点也有一个名称(默认是随机分配的),节点名称很重要(在执行运维管理操作的时候),默认节点会去加入一个名称为"elasticsearch"的集群,如果直接启动一堆节点,那么它们会自动组成一个elasticsearch集群,当然一个节点也可以组成一个elasticsearch集群。ES默认就是分布式存储,Es的数据存储都是分片进行存储,一个索引库下有多个主shard,当然为了解决主shard单点故障问题,每个主shard还可以有多个从shard,来做数据冗余。

2024-07-22 18:50:40 103

原创 数据库优化-单机优化

要不然在测试的时候,开启慢查询,要把所有的功能跑一遍。或者是在项目上线的时候,短暂开启一段时间慢查询,在这段时间内,让测试人员把所有功能都执行一遍。mysql 2000个请求并发过来,性能就要有问题,可以通过最大链接指令,查看当前连接数是多少,那就设置my.ini中的最大连接数值。默认你慢查询阈值是10s,修改时间阈值,修改慢查询阈值。mysql可以集群,oracle不能集群,大小公司用mysql,oracle用中型公司。添加慢sql,性能会变低,什么时候开启慢查询,所以不能一直开启慢查询。

2024-07-20 11:16:45 236

原创 单机优化(常规优化)

比如name是辅助索引,你要查name,就不用回主键索引树去,直接返回name,把辅助索引树的key值返回了。在myisam中,它的叶子节点值,不是具体的数据,而是当前数据在磁盘 文件中的位置,再去磁盘获取数据。因为有辅助索引,有多棵树,数据放主键索引树,辅助索引树就放主键索引的key值,不可能多个索引叶子节点放数据。叶子节点放的是主键索引,通过辅助索引进行查询,通过辅助索引树找到id,再通过主键索引去查询数据。查询快就innodb,对事务要求高,innodb,安全度高,比如钱。

2024-07-17 17:37:38 288

原创 jvm优化

什么是jvm,java是跨平台语言,对不同的平台(windos,linux),有不同的jvm版本。full gc 一般是老年代的回收,伴随至少一次的minor GC ,新生代和老年代都回收,老年代,暂停时间比较长,因为是标记回收法,通常是minor gc的时间十倍以上。7.3 复制算法,把内存分为大小相等的两块,每次存储只用其中一块,当这一块用完了,就把存活的对象全部复制到另一块上,同时把使用过的这块内存空间全部清理掉,往复循环。如字面意思,每次垃圾回收的时候,都会将整个JVM暂停,回收完成后再继续。

2024-07-16 20:31:01 773

原创 数据结构复习

红黑树,查的较慢,因为多一次比较,插入和删除优与avl树,,AVL树每次插入删除会进行大量的平衡度计算,而红黑树为了维持红黑性质所做的红黑变换和旋转的开销,相较于AVL树为了维持平衡的开销要小得多。线性结构:数组,栈(先进后出),队列(先进先出),这三个都有顺序结构和链表结构形态,串,一对一的逻辑关系,比如String StringBuilder StringBuffer。平衡二叉树:在二叉查找树进行了优化,进行了平衡度计算,但是每次插入删除会进行大量平衡度计算,插入比较耗时,所以又出现了红黑树。

2024-07-16 19:39:26 392

原创 集合相关知识

有值,对hash值是否一样,key是否一样,一样覆盖就行,然后我们就要判断key和value不相等,,else if 是不是树结构,instanceof,我也没咋懂啥意思,我猜是用来判断是不是TreeNode种类,进行一种种类判断,我觉得这个方法的意思就是这样,不然后面解释不通。hash计算,hashcode的计算,异或向右16位,右移16位,是为了避免hash冲突,且和原本的hash值。把tablehash表的值赋给tap,判断是不是空,说明链表是空的,创建长度,给hash表,默认16。

2024-07-15 20:12:48 683

原创 鸿蒙瀑布流和欢迎页(1)

在80的时候就已经增加数据,因为80+20等于一百,初始生产一百条数据,this.datasourse.addLastItem(),datasourse就是我们初始new的对象。因为开始的时候,我们newdatasours时,已经初始好了一百条,所以这里判断是,在80+20==100 的时候,提前预加载好数据。我不知道为什么这里要报错,我把image,用余数来搞地址,明明也没报错系统,但是那里有红点?datasourse,里面干了啥事,就是我们刚开始的工具类。往下滑动过程中,实时监控划到哪了,实时增加。

2024-07-13 11:38:37 335

原创 购买华为云38一年服务器worpress进行个人博客(1)

由于域名注册要一定时间,今天暂时更新到这里,等周六更新,我买了个我名字加生日的域名,9元一年,感觉还行。应该没有域名也可以弄自己的个人博客,但是都已经花了几十元了,不弄完美点,总感觉可惜。重置完后,xshell连接,账户密码就不显示了,因为我已经装好宝塔linux了。https由于是安全协议,打开的时候,可能会报错,看下面连接。进入自己私网ip,进入了宝塔界面,也可以去软件商城自己安装。搜索安全组,我直接放行全部了,我才不管安不安全。你要重置密码,因为我已经重置看,我就不展示了。购买成功后进入,个人中心。

2024-07-11 20:21:36 324

原创 hash冲突解决方案

开发寻址法:通过计算hash值hash(key)=p,已经有值,对hash再一次hash。再散列法:提前准备好若干个hash函数,换一种hash函数,再换种函数。建立公共溢出区:把hash表分为基本表和溢出表,冲突了放到溢出表中。hash算法应用:文件校验,数字签名,计算存储位置,登录加密。

2024-07-11 17:14:18 67

原创 树的结构(b,b+树)

大规模数据存储,二叉树树的深度过深,导致查询效率低下,磁盘io读写过于频繁,导致查询效率低下,多叉树能够解决这个问题。插入的数据总是比已有的数据大,子树会向一边切斜,树的层次变深,形成链表结构,出现了平衡二叉树。根节点和叶子节点是黑色,内部节点是红色和黑色较低,叶子节点必须是黑色,根节点只能是黑色。无论线性表,栈还是队列,都是一对一,查询的时候,效率较低,数据量比较的大的情况。二叉排序树,平衡二叉树,赫夫曼树,红黑树,都是属于二叉树。B树比较矮,分叉越多,树越矮,io次数较少,搜索性能较高。

2024-07-11 16:02:11 275

原创 线程安全(有点乱哈)

失败,将计数器从0设置为1失败,当前持有锁的线程==当前线程,将计数器加1,如果等于,则是返回失败。强引入用在tl,map都被回收了,但是强引用没有被回收,这时导致内存泄漏,value成为一个永远无法被访问,无法被回收的对象。sys锁机制,1.5以前,通过cas指令,默认sys是重量级锁,1.6以后,对锁进行了升级,sys锁优化。entry是一个弱引用,有四种引用类型,强引用,软引用,和虚引用,关联到垃圾回收机制。lock是java代码实现的,api是显示锁,sys是jvm管理的,就是隐形锁。

2024-07-10 20:11:42 904

原创 线程并发库复习

什么是进程:进程是内存分配的基本单位,它是程序执行时的一个实例,会被放到进程就绪队列,等进程调度器选择它,给它时间片,它才会运行。什么是线程:线程是程序执行时的最小单位,进程由多个线程组成,线程间共享进程所有资源,每个线程有自己的栈和变量。让出cpu,会放弃锁资源。线程池中的数,有一个大概算法,cpu密集型应用,线程池大小设置为N+1,如果是io密集型:操作文件,线程池大小设置为2N+1.new新建状态,Rybbavl就绪状态,等待时间片,running运行中状态,run方法结束,线程销毁(死亡状态)。

2024-07-09 19:21:02 696

原创 鸿蒙小练习

只能有一个根标签,所以我们要用个column,把轮播和页面跳转,包起来。轮播图我遍历了下一个对象的数组,类似于java数组。带有参数跳转页面,模仿广告跳转。

2024-07-08 18:55:27 379

原创 新人买电脑组件,组装心得。

cpu和主板一般都是一起卖的,反正我都是直接买的套装,拿到的时候,cpu都给你装好了。5.组装,组装我是看网上视频加询问客服组装成功的,一般的话,我都是问主板的客服,他们都会帮你解答,反正我连windos的问题都问了的,他们都会回答,而且他们的商品一般都说了包售后服务,我组装显卡配件哪些,一遍买配件,一边问客服。1.cpu+显卡+100是你要的电源,但是可以往高一点买,但至少消耗电源百分之四十的电源,我买了额外600w,想得买多不买少,实际配的话,额外500w,实际400w就行了,个人感悟电源买多不买少。

2024-07-08 11:35:30 224

原创 鸿蒙笔记导航栏,路由,还有axios

这源码说了,tarbar可以给的参数有string,resource,customerbuild(这个是个回调函数),或者{。栈底,栈顶,相当于有一个栈,里面可以存多个页面,可以回滚页面,初始的页面就放栈底?比如登录成功,push回去。是JavaScript中用于表示异步操作结果的对象,若操作成功,其中会包含具体结果,若操作失败,其会包含错误的原因。,会直接销毁当前页面并释放资源,然后用目标页替换当前页,因此使用该方法跳转到目标页面后,不能返回。服了,它又不给提示,只有靠自己猜,这点差评,错误提示不明显。

2024-07-05 14:48:26 839

原创 鸿蒙组件级状态管理

在@Prop,@Link,@Provide与@Consume这几个装饰器仅能观察到第一层的变化,在实际应用开发中,应用会根据开发需要,封装自己的数据模型。基本数据类型可以观察到(必须赋值),object和class直接属性没有问题,比如this.num++,但是类嵌套就不行比如两层类嵌套,this.p.num,好像现在可以监听到了,api5就可以监控到。修饰符除了@State还有@Prop,@Link,@Provide和@Consume,@ObjectLink和@Observed。

2024-07-04 11:41:23 272

原创 鸿蒙应用笔记

中间各个组件学习就跳过了,没什么意思,纯纯浪费时间,明明可以看文档就可以懂,到时候用再看就行了,水了那么久视频。css相当于定义成方法,自己传参就可以了,该加哪些属性,直接看方法就可以了,记不住,鼠标放上去。有点像注解的这种东西,是装饰器,用来装饰类结构,方法,变量。下面遍历函数当时听,看的时候有些懵逼,自己实际使用就懂了。代码,遍历的东西,一定要放在ListItem中,不然报错。基础组件:自带样式的组件,text,button之类的。号什么意思,好像是可要可不要的意思,可以省略。

2024-07-03 15:32:11 725 1

原创 缓存双写一致性(笔记向)

一个查一个写,查的时候读老数据,另外一个又在写,数据就不一致了。刚好请求b将新值写入数据,请求b删除缓存后,刚好请求a写入缓存。一次都没操作,又更新了,比如更新了缓存,10分钟没有人用,但是又修改数据,又要改缓存。反正就是容易读到老数据,改数据的时候,读比较快,容易读到老数据。睡眠再删除第二次,使用线程池单开线程。延迟一段时间后,再删除缓存,在第一次删除缓存后,延迟一段时间后,再删除一次缓存。在第一次缓存删除之后,另开一个线程,执行第二次缓存删除。同步延迟:第一次删除缓存,睡眠一会儿,再删除一次缓存。

2024-07-01 20:30:45 311

原创 Es结合springboot(笔记回忆)

其余操作就很简单了,简单的增删改查没意思,直接快进到聚合查询,我就是为了回忆聚合查询,才开始又慢慢看es的。创建实现增删改查的ES工厂,这个接口估计是模仿mybatis那个mapper,东施效颦罢了。这个方法可以放入一个boolQuery,这个boolQuery我们可以弄很多的聚合查询在其中。对了,这个方法要的是接口,所以我们要找接口的实现类。指明了在es中的位置和地址,text分词查询,keyword不分词哈。bool中有must关键查询和filter范围查询和过滤查询。

2024-07-01 15:26:48 355

原创 ES(笔记)

如:城市搜索 New York"city":"city":{ "type": "text", "analyzer": "ik_smart", "fields": { "raw": { "type": "keyword" } } } 解释:相当于给 city取了一个别名 city.raw,city的类型为text , city.raw的类型keyword 搜索 city分词;must,should 做模糊查询的,里面都是match,根据查询内容进行匹配,filter过滤,term词元查询,就是等值查询。

2024-06-28 15:45:58 601

原创 mongodb(笔记向,有点乱哈)

db.表名.update({条件},{$set:{修改后的字段值}}) # 更新id=1的数据,age=35,如果age字段不存在,会默认新增该字段 $set似乎有点关键。基于分布式文件存储的数据库,c++语言,介于关系与非关系数据库之间的产品。语法有点类似于面向对象的查询语言,几乎可以实现类似数据库单表查询的绝大部分功能,支持建索引提高查询效率。db.表名.update({条件},{修改后的字段值}) 但是其他字段都会删除掉。新增:获取要操作的数据库表,构造新增对象,然后插入数据。

2024-06-27 16:22:53 422

原创 缓存双写一致性(笔记)

读穿透和旁路很相似,程序不需要关注从哪里读取数据,它只需要从缓存查询数据。缓存内部判断有没有该数据,然后去数据库拿,放入缓存,返回前端。写操作必须经过缓存,缓存会自动持久化到数据库中,缓存自己连接数据库,更新数据库。写穿透和异步写差不多,写穿透是立即,异步缓存写入,就是隔一会儿,因为它是异步。旁路缓存模式:缓存有就返回,没有数据库查询,放入缓存返回。就是去数据库拿那部分不是代码部分,是缓存部分的了。读穿透就是读数据,缓存没有数据,去数据库拿嘛。写穿透就是写数据,缓存,数据库都写。一般需要读穿透配合使用。

2024-06-25 17:31:32 336

原创 使用AES,前端加密,后端解密,spring工具类了

先生成我们要的秘钥,然后把我们前端改了就行,我是在spring环境中,记得要在上面文件修改下,因为他好像不是spring环境下的配置。学习python的时候,看到很多会对参数进行加密,于是好奇心驱使下,让我去了解了下AES加密如何在java中实现。成功了哈,我根据大佬文件改了改放在spring框架下也能用了,那么大致思路就有了,前端加密,后端解密就行了。然后在你的方法中,给你们前端源码看看,因为我用的ruoyi框架做的实验,请求可能不是axios发送的请求。后端我是参照这个文章写的,自己自定义的key。

2024-06-25 16:58:46 428 2

原创 TypeScript(笔记版)

默认导入导出,一个文件最多有一个默认导出项,类似于vue那个default export,可以无需关注导入项的名称。本地搭建环境,vscode,安装插件Code Runner,这个插件可以运行很多语言,还要安装ts-node。继承,extend那不是和java一样吗,supper调用父类,this关键字访问继承自父类的属性和方法。子类构造要子类调用父类的构造方法,supper是不能访问属性,用this访问,父类赋予子类的变量?还有几种,太无聊了,走神了,TS太像java了,很难集中注意力,没有新意。

2024-06-24 16:07:55 352

原创 ruoyi添加自己的菜单

我发现一个问题,路由地址可以填index2或者scooldemo/index2都可以(这个包含了文件夹路径),反正组件路径一定要填对就可以了。因为我已经新增过,所以就看看我填的啥就行了。先把自己自定义的view填写好。

2024-06-22 16:19:22 266

原创 若以框架学习(3),echarts结合后端数据展示,暂时完结。

前三天,参加毕业典礼,领毕业证,顿时感到空落落的失去感,没有工作,啥也没有,总感觉一辈子白活了。因为数据太多了,有1000条,其实可以限制下不查那么多。由于自己前端技术问题,迟迟不能完成,所以我又网上搜了下。调整了下代码,终于完成了前后端echars数据。前端当初没搞懂,后端就太简单了,返回一个map。修改后的代码如下,大家可以参考下。然后在main.js中配置。自己的界面先用一个案例。导入echartss。//导入echats。

2024-06-22 15:10:18 553

原创 随心而遇,跟着感觉走

博主专科学的嵌入式,当时嵌入并不火,冷门专业,大专毕业甚至很多机会去干嵌入式,甚至是java,现在我都记得到,当初大专毕业时,去面试java仅仅只是简单的java笔试题。本人体验来说,电子,工地,计科,数学,工科相关的专业,都可以跨领域进入java行业,我的建议是,你的学校越好,其实很多专业的门槛都可以没有。所以,选择好学校真的特别重要,如果你是985,211,在java行业可以说是乱杀,在java中,你的专业屁用没有。就业季时,企业来到我们专科可谓是人山人海,热闹非凡,简历一给,过几天就去面试。

2024-06-18 19:16:39 359

原创 支付宝支付

异步回调地址:post请求发起的,后端的接口地址,这个最关键,后面还要内网穿透,他是发送不到你的124.0.0.1的,必须是对外开发的地址。选择支付方式,支付密码,都是支付宝在做,后续我们都做不了。我们只需要把参数配好,比如同步通知和异步通知地址给好。用我们的公钥换支付宝的公钥,把工具里的私钥保存在数据库。我们可以主动调这个接口,看是否成功,这个也可以为准。保存公钥和私钥到数据库,可以使用默认的,或者自定义。把同步,异步地址放进数据库,把相关数据存入数据库。支付成功就根据同步通知地址和异步通知地址,返回。

2024-06-18 17:21:27 120

原创 数据传输安全(为支付宝第三方做铺垫)

支付宝就要:利用对方公钥验签,解密成功,是对方发过来的,所谓验签,使用对方公钥进行解密,没报错,是对方发过来的请求。解决方案:在自己的服务对自己的私钥进行加签,再使用对方的公钥进行加密。客户端 HTTPS的服务器必须要有一套数字证书,花点钱申请,或者自己制作,证书就是公钥。只能加密不能解密,常见算法md5,用户注册加密不能解密,使用场景对密码比对。支付宝返数据加密也是用自己服务的公钥进行加密,我们用自己的私钥进行解密。双方交换对方的公钥,私钥不会交换,都自己保存。加密和解密分开,公钥加密,私钥解密。

2024-06-18 14:30:36 350

原创 navcat 随机生成数据

我最近才知道navcat能随机生成数据,所以分享下。下一步,下一步就可以了,我们就成功了。

2024-06-18 12:48:25 157

原创 支付模块:支付宝

阿里账号信息表:阿里的账户信息表,商户的私钥,阿里的公钥。协议,网关地址,签名,都是阿里给的。异步回调地址,同步回调地址。支付流水表:调用三方接口的流水表,金额,交易状态码是否交易成功,结果描述。按照支付宝开发文档 操作即可,最重要的两个,异步回调地址,同步回调地址。支付服务判断支付方式,余额还是第三方,第三方就调用第三方接口。支付成功后,修改支付单,修改订单。异步通知:是后端得知是否支付成功。支付单表:就是自己的支付单表。还有的话,微信,银联的表。用户表:余额支付用的表。租户表:余额支付用的表。

2024-06-18 11:22:20 115

原创 ruoyi框架第二天,自定义接口,在若依框架显示数据

今天,我们就要自定义接口,模仿ruoyi框架收发数据模式,来创建自己的模块。我们创建好自己想要的接口,我这个是无参的查询所有接口。书接上文,搭建好若依,并且创建自己想要的模块。然后我们在car.js自定义自己想要的接口。自定义好自己想要的接口发现要在这里引入。让ruoyi框架显示自己想要的模块。我们点击listCar发现跳到了。发现跳到我们自己创建的apis中。找到我们自定义页面的地方。模仿ruoyi的接口写的。我们修改vue前端代码。

2024-06-17 18:57:28 272

原创 下单模块(继续于订单模块)

实现思路就是下单时候,发送延迟消息完成订单取消,到时间没有支付,就取消订单。所以订单取消就用延迟消息:不会立刻被消费,指定时间后被消费。对了这里出现了,mapper多个参数,@param,有个面试题,skuid和num。判断是从哪个页面过来,购物车过来,删除购物车数据,是立即购买,就不用购物车。页面展示,当前可购买库存 = 可用库存 -锁定库存(前端处理吧)方案一:把钱给平台的账户,定期分钱(平台必须有资质,有拍照)订单取消,本地支付单要取消,第三方支付单也要取消。扣减库存,礼物服务监听,然后扣减库存。

2024-06-17 16:55:53 145

原创 尚硅谷paython第一天(4) get请求的quote方法

因为计算机无法识别汉字,所以我们要把汉字转换为计算机可以识别unicode码,然后我们拼接下就可以。让人吐槽的地方是,明明这么简单的东西,居然讲了16分钟,有点麻。

2024-06-17 00:20:35 92

原创 尚硅谷爬虫学习第一天(3) 请求对象定制

如果是,网站首先对该 IP 进行预警,对其进行重点监控,当发现该 IP 超过规定时间内的访问次数, 将在一段时间内禁止其再次访问网站。这个视频感觉讲的不是很清楚,但是我理解的话,因为我们是爬虫发送的请求,是没有携带UA,所以我们无法过第一关的意思,然后就pass了,所以我们要包装下自己,把UA带上,然后再去请求htts。但是我好像失败了,这是什么鬼,我有种感觉,尚硅谷资料有点过期了,百度反扒升级了,仅仅是ua似乎不起效了。怎么感觉b站上尚硅谷讲的不咋滴呀,讲的模糊不清,还要自己思考下,才能理解,真的很烦。

2024-06-17 00:03:02 446

原创 尚硅谷爬虫学习第一天(2) 爬虫案例

urlretrieve这个方法就是爬取对象,图片视频都可以爬取,非常简单。b站视频不能爬,人人视频可以。

2024-06-16 23:23:30 929

原创 python学习第一天(1),一个类型6个方法,b站尚硅谷

一个类型 httpresponse,六个方法,read readline readlines getcode geturl getheaders。response是HTTPResponse的类型。#返回状态码,200成功,有点像java?# 按照一字节一字节去读。#读取一行,不读完?

2024-06-16 22:59:28 179

原创 若依框架自定义开发使用学习笔记(1)

我们可以点击修改按钮,然后自己修改domain路径,下图我不知道怎么弄,反正我不是这个方案,因为我是学习,所以我是没有管。自定义domain路径,因为ruoyi框架,domain路径是在system中,所以我们可以修改domain路径。在菜单管理模块,选择不需要的模块,比如若依官网,点击删除,如果没有删除成功。粘贴的时候记得把原来的controller删除了,我就遇到没有删除,报错,测试成功。组件路径就是全地址,从views开始,中途字不小心打错了,它不会报错,要注意。因为我是跳着学的,原理那些都没咋看。

2024-06-15 16:04:27 378

原创 订单模块学习笔记

把支付单单号,返回给前端,前端携带支付单号,跳转支付页面,选择支付方式,确认支付金额,最后点击确认支付。订单表:关键字parentno关键字段(后面幂等性校验用),订单编号,pay_type(支付方式),last-pay-time 最后支付时间,还有一个最后确认时间(后面取消订单要用)订单充值表:充值订单的详细,某用户,支付单号(这个挺关键的,支付宝后面要用),给账户充钱。一个房间一天就是一个订单,就一天就是一个订单,拆单的话,实际上没有固定的说法,按照业务的实际需求来制定。

2024-06-14 11:40:20 313

原创 xxljob实战

底层依赖没有拷过来,缺包,缺啥包,自己去导,比如下下来的xxl-job模版项目中导就行了,这个可以从gitee上面下。可视化界面就注册过来了,在可视化界面,自己新增一个任务,有手就行的可视化界面,不需要多说,连字都看不懂就可以自杀了。用到了一个指令,网上搜一下,这个要改,把自己的maven仓库的命令(maven命名,网上有,自己搜下)放进去。进入可视化界面,新增执行器,最好和配置中的执行器名字要一样,自动注册,然后它会自动注册到那里去。ps:第二个方案,自己建一个模块,其他模块直接导入这个模块就可以了。

2024-06-13 10:15:15 316

空空如也

空空如也

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

TA关注的人

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