- 博客(29)
- 资源 (2)
- 收藏
- 关注
原创 MySQL字段内容加解密使用性能验证
有多种解决办法,可以通过中间件来实现、数据库层来实现,最终选择了AES对称加密的方式:Java加密数据进行保存,MySQL中解密进行范围查询的方式。几个数据量节点进行单条新增、等于查询、大于小于范围查询。“加密新增一条速度”:到达“数据量”一栏对应的最高值时单独新增一条数据的用时;“加密新增全部速度”:前面数据量一列展示的从多少数据到多少数据新增的时间;“解密查询一条数据速度”:到达“数据量”一栏对应的最高值时等于查询的速度;“解密范围查速度”:到达“数据量”一栏对应的最高值时使用范围查询的速度;
2025-03-06 22:05:47
403
原创 T400-又爱又恨的第一台电脑
刚开始还没敢想太贵的,感觉五千就很不错了,结果家里建议买就一步到位,价格可以适当提高一些,最后又找找人(当年去电脑城买电脑可以招人,帮忙便宜,现在都在线买,快递到家)八千多块买了它。当时建议买这个的人说这个电脑好,抗造,反正学编程,肯定要弄这个的,这个能扛好久,配置还不错,样子不用在意。后来就这样从学校又带到了工作中,刚开始还用用,后来公司给弄电脑,就逐渐不用自己的了,就扔一边吃灰了,现在回想一下,已经十三四年了,还记得五六年前在家还打开过,后来就不知道扔哪了。还想找找后来那次拍的电脑的照片,没找到。
2023-03-31 14:56:53
168
原创 工具网站从头开始--第一天 环境准备
看大环境来说,就用些市面上的常用技术,后面再慢慢拓展技术栈,先以单机前后端分离来做,后面“有机会”再深入安装最新版本的npm(原来电脑里有老版本的,应该会直接覆盖了)安装Vite上面是安装的内容,里面根据提示选择确认就好,我除了第一个Y,后面都是回车。。。然后就是下面的运行了就好了然后是创建一个HTML试试效果,element-plus能不能用效果是:前端环境好了,下面看看后端的main.py效果如下:等下做个功能,前端请求后端,然后返回成功,第一天的环境搭建就算完成了~...
2022-07-14 10:34:25
172
原创 如何保证缓存和数据库数据一致性?
如何保证缓存和数据库数据一致性?或者问如何保证Redis和MySQL的数据一致性?有几种方式:主要就是以上五种,有些是类似的下面一个个详细说一下。这种很好理解,所有的业务系统的操作只针对缓存(Redis),缓存中有单独的任务(服务)去操作数据库,对数据库的增删改,但是这个需要同步进行,如果对数据库操作失败了,缓存也要回滚内容,从网上找到两张图,理解一下这种方式:同步读:同步写:整体都比较类似,但是写的最后缓存对数据库的一步是交给异步了,不会同...
2022-06-23 14:46:23
422
转载 公平锁与非公平锁
在Java并发编程中,公平锁与非公平锁是很常见的概念,ReentrantLock、ReadWriteLock默认都是非公平模式,非公平锁的效率为何高于公平锁呢?究竟公平与非公平有何区别呢?首先先简单从名字上来理解,公平锁就是保障了多线程下各线程获取锁的顺序,先到的线程优先获取锁,而非公平锁则无法提供这个保障。看到网上很多说法说非公平锁获取锁时各线程的的概率是随机的,这也是一种很不确切的说法。非公平锁并非真正随机,其获取锁还是有一定顺序的,但其顺序究竟是怎样呢?先看原创图:公平锁与非公平锁的一个重要区别就在于
2022-06-16 17:52:27
178
转载 hashCode 为什么乘以 31?一步步理解hashCode 和 hash 算法
hashCode 为什么乘以 31?一步步理解hashCode 和 hash 算法
2022-06-08 16:54:44
793
1
原创 用postman做mock测试
第一步:创建mockserver,填写需要请求的接口和希望返回的内容第二步:给mockserver起一个好名字第三步:复制mockserver路径第四步:创建一个request,请求看一下第五步:查看请求历史项目中使用方法:把需要调用第三方的路径改为刚才复制的路径,比如:path:www.baidu.com/demo/query改为:path:https://c667b61c-77f2-4361-8049-08ef...
2022-05-09 10:06:33
1132
1
转载 Java并发中的Fork/Join 框架机制详解
本文主要介绍了 Java 并发框架中的 Fork/Join 框架的基本原理和其使用的工作窃取算法(work-stealing)、设计方式和部分实现源码,感兴趣的朋友跟随小编一起看看吧什么是 Fork/Join 框架Fork/Join 框架是一种在 JDk 7 引入的线程池,用于并行执行把一个大任务拆成多个小任务并行执行,最终汇总每个小任务结果得到大任务结果的特殊任务。通过其命名也很容易看出框架主要分为 Fork 和 Join 两个阶段,第一阶段 Fork 是把一个大任务拆分为多个子任务并行的执行,第
2022-05-04 14:26:39
337
原创 设计模式-概述
“花里胡哨的就不说了,这里每篇一句想说的话吧:今天干就完了!。” 设计模式在软件研发中是个很老生常谈的事儿,我自己也的确模模糊糊,这里就像立一个flag,尽快给他拿下!01—简介一下设计模式设计模式就是软件设计研发这么多年来,中间不断有人总结归纳经验:什么样的设计更合理,更容易被人接受,更利于后期维护?可能很多人都有各自的认知和归纳,但是有一部分人(GOF)总结的这个,被多数人认可并传播了。而且这个设计模式跟具体的编程语言无关,是一种代码结构设...
2022-01-05 10:45:29
104
原创 mysql查询全角半角问题
问题背景:因为项目中某些需求,需要根据企业名称查询企业信息,但是企业输入名称和实际名称可能会有括号的全角半角问题,比如:自家系统中某企业名称“百度在线网络技术(北京)有限公司”,但是手动输入的名称是“百度在线网络技术(北京)有限公司”,这时候mysql查询不出来,怎么办?解决方法1:在查询sql中做特殊处理:select * from company wherereplace(replace(replace(replace(name,'(',''),')',''),'(',''),')...
2021-09-17 14:01:53
4233
原创 Idea项目启动:Command line is too long
<property name="dynamic.classpath"value="true"/>
2021-05-28 14:14:01
118
转载 浅谈 Kubernetes 中的服务发现
Kubernetes 服务发现是一个经常让我产生困惑的主题之一。本文分为两个部分: 网络方面的背景知识 深入了解 Kubernetes 服务发现 要了解服务发现,首先要了解背后的网络知识。这部分内容相对浅显,如果读者熟知这一部分,完全可以跳过,直接阅读服务发现部分。开始之前还有一个需要提醒的事情就是,为了详细描述这一过程,本文略长。Kubernetes 网络基础要开始服务发现的探索之前,需要理解以下内容: Kubernetes 应用运行在容器之中,容器处于 Pod 之内
2021-04-29 15:27:44
200
原创 dubbo改feign踩坑记录
顺序不一定,看看记不记得着吧修改背景:因为整体技术栈的修改,从原来的dubbo的接口调用,改为了feign优点:都改为了http调用,公司各项目库之间不用冗余interface代码,改为springcloud技术栈,方便后期各种springcloud的组件接入缺点:springcloud接触都不是很深,需要踩坑直接开始吧 500-Requestprocessingfailed;nestedexceptionisfeign.codec.EncodeException:'Co...
2021-04-28 17:16:50
1576
原创 线上问题排除(连接超时)
今天线上项目出现链接超时,开始排查问题简单的一次请求的流程(需要调用第三方):页面-->服务-->第三方首先修改了服务到第三方的,就是修改项目中的http请求超时时间:修改http请求超时时间修改完,感觉不像,因为一次请求虽然慢,但是是分多次请求,应该不是这个问题。然后想一想页面到服务,我用的postman,应该没事,有可能是服务的接口相应超时没有设置,但是先自测一...
2020-03-19 13:49:37
487
原创 Http请求设置超时时间
原设置如下: CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建httppost HttpPost httppost = new HttpPost(url); String result = null; try { Inp...
2020-03-19 13:40:19
21747
1
原创 安装Django,提示pip版本低,更新又失败
最近想要看看Django,以前安装过python,现在想按照教程来学习,结果发现在安装Django包(命令:pip install django)时候出问题了,说我的pip版本低建议更新一下:C:\Users\me>pip install djangoCollecting django Retrying (Retry(total=4, connect=None, read=Non...
2020-03-08 10:52:18
3761
1
原创 数据库中最近遇到的问题
Oracle中模糊询并且不区分大小写方式:1。确定可以用:select * from log_core_shellrunlog t where 1=1 and regexp_like(t.shell,'r','i') regexp_like(t.shell,'r','i') t.shell的作用就是确定表中某个字段,r的意思就是要模糊搜索的内容,最后一个参数'i'
2013-08-17 16:47:28
489
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人