- 博客(34)
- 收藏
- 关注
原创 1/7 Spring三级缓存
B就是也是先创建原始对象,然后就是放入三级缓存,然后就是填充A,A在三级缓存中找到了,所以就是通过调用存在缓存中的方法,创建A(这里如果是代理对象的话传入的是代理对象A)这部分判断是在这个lamda表达式中判断的,然后将这个A可以从三级缓存放入2级缓存了,这里是一个对于A的引用,所以B填充这个依赖没啥问题,然后就是对B通过lamada表达式从三级缓存直接放到1级缓存单例池中。填充里面的属性,然后如果有AOP的话,那么就会创建这个代理对象,最后将代理对象传入这个单例池中。比如A依赖B,B依赖A。
2025-01-07 17:43:15
147
原创 1.4 java反射机制 简单的java反射机制实践
第二个demo是用于利用类的名字以及方法名就可以直接执行的实例。第一个demo是利用反射构建一个对象转换为JSON。这是一个项目用于学习反射。
2025-01-04 23:21:14
232
原创 12.30 java网络编程之socket编程(NIO多路复用版本) socket编程大作业答案
在本次项目中,我们将实现一个简单的客户端-服务器(Client-Server)通信模型。通过这个项目,你将学习到如何使用Java的SocketCh和ServerSocket类来创建网络连接,进行数据的发送和接收。该项目不仅涵盖了Socket编程的基础知识,还将帮助你理解网络通信中的重要概念,如TCP/IP协议、阻塞与非阻塞I/O等。本socket教程基于NIO的SocketChannal等完成同时我们会将他部署到自己的云服务器中实现远程消息收发。
2024-12-30 21:00:31
1881
原创 12.29 redis实现一个简单排行榜
本项目是一个基于 Spring Boot 和 Redis 的实时排行榜系统,利用 Redis 的有序集合(ZSet)数据结构高效地管理用户分数和排名。用于Redis中Zset数据结构学习。项目描述:Redis实现的实时排行榜系统。下面是control。
2024-12-29 21:39:14
330
原创 12.29 redis缓存一致性
更新操作如果先更新数据库再更新缓存先更新缓存再更新数据库更新缓存为1更新缓存尾2更新数据库为2更新数据库为1那么最后缓存为2数据库为1数据不一致先更新数据库,再更新缓存数据库为1数据库为2缓存为2缓存为1还是不一致于是这种情况我们改为将缓存删除这样也会数据不一致4.先更新数据库,再删除缓存读缓存读到的是以前缓存更新数据库删除缓存写回这也会数据不一致但是这种几率比较小因为先写回的速度要快于更新数据库。
2024-12-29 19:50:40
282
原创 12.29 redis过期策略和内存淘汰
就是设定一个时间,定期抽取一些key,将里面过期的删除,如果这个比例超过25%,就会再次执行一次这个操作,并且为了防止死循环,还对最大时间进行了一个设置。当要操作某一个数据的时候,先检查是否过期了,如果过期了就删除,没有过期就不删除。就是在设置过期时间的时候同时设置一个定时任务,在过期的时候就直接删除。过期删除指的是当键值对设置了一个过期时间之后,会将该键值对删除;而内存淘汰则是内存满了之后对内存原有的部分进行一部分删除。对设置了过期时间的进行淘汰以及对所有的进行淘汰。过期删除和内存淘汰是两个不同的概念。
2024-12-29 14:59:51
227
原创 12.29 redis持久化
AOF缺点就是每次重启的时候很慢,但是好处就是记录每次只要把最新的一条加上去就行了;,RDB就是记录时间间隔太短,会造成。阻塞(如果用这个bgsave则不会),记录时间间隔太长的化,两次快照之间的就会丢失;混合方式,前面是这个RDB,所有键值对快照,然后后面是AOF记录操作,好处就是又快,然后有不容易丢失;AOF重写,就是把AOF原本的命令集,优化为能够重写所有的命令集。AOF有三种模式,有操作就写入,每秒写入,以及不写入。redis持久化的方式,以及这两种方式有什么区别。,就是存的以前的操作信息,
2024-12-29 01:37:27
120
原创 12.22 深夜思考 黑马点评秒杀业务根本就不是合理业务
(1)然后我们的票应该是预先生成在这个redis中的,所有不能用用分布式锁,直接在redis里面看就行了,然后这个时候订单才会有超时的场景(因为还有很多人等着票呢)往后想一想怎么办。这种情况下,只能是业务端到15分钟,就把真的票释放掉,最多是增加1个接口,告诉支付订单这个业务订单已经取消了,如果用户后面支付成功了,通过订单状态退款就好。12306应该是,抢到票之后就开始倒计时,提醒用户要在15分钟之内支付完成。(2)抽奖模式,提前加入奖品次,然后抽几个中奖的(抖音直播间),然后异步短信告诉这个。
2024-12-29 00:34:06
406
原创 12.28 redis数据结构解析
然而redis会定义两个hash表,当要rehash的时候就会就会初始话第二个hash,大小是第一个hash的一倍,然后当开启rehash的时候,会用一种渐进性rehash的方法,就是每次增删改查的时候,会对两个hash表同时进行,并且会一次操作就会将hash1中的部分数据转移到hash2中,对于查找操作会两个hash表一块查询,对于增加操作,就会加到hash2中,这样hash1只减小不增加。在插入的时候,每个节点会生成一个0,1的随机数,小于某个设定的概念的时候就会输向上层增加一个结点。
2024-12-28 20:58:24
335
原创 12.24-12.28Mysql锁阅读笔记
1.Mysql的锁有哪些种类表锁当一个事务锁上表锁之后,它就只能访问自己锁上这个锁的表元数据锁就是锁上表的元数据,出现一个问题就是,当出现长事务的时候,这个时候,他先select了,这个时候获取的是元数据的读锁,然后当另一个事务修改这个元数据的时候,那么就会获得元数据写锁,但是还未获取,会阻塞,申请元数据锁的事务会形成一个队列,所以后续申请元数据读锁(也就是一个select语句都会阻塞)意向锁。
2024-12-28 00:07:03
1527
原创 12.23 面试记录(小丑贴)
Lua有原子性的实现方法是啥(Redis中 为什么Lua脚本可以保证原子性?两个存储引擎的区别(mysql)MyISAM InnorDB。jwt单点登陆,jwt还是有点问题是什么。Springcache和reids区别。自定义一个注解,定义的注解是怎么找到的。写一段逻辑想要在bean加载之后执行。Sychornize和CAS的区别。Spring bean的加载过程。springboot源码读过没。微服务(注册中心/服务)编译时和运行时的区别,Lua脚本的流程是啥。令牌桶算法和漏洞算法。
2024-12-23 14:50:46
611
原创 redis问题bug:无缘无故出现的PCP键值对
redis出现经常缓存的数据过了一天就自动消失,然而并没有设置任务TTL。同时key中出现一个PCP的键值对stream流数据,问题是根本不知道是咋出现的结果发现是这个进程不停的向PCP写数据Performance Co-Pilot(PCP)是一个开源框架和工具包,用于监控,分析和响应实时和历史系统性能的细节。
2024-12-21 18:37:59
377
原创 12.20 -12.22mysql博客学习
查询缓存,如果执行过相同的一模一样的sql语句就返回数据。1.执行一条select语句,期间发生了什么。1.学习mysql(一个面试拷打视频)然后解析器,通过词法分析以及语法分析。首先是连接器简历连接,
2024-12-20 22:55:31
86
原创 redis报错:Unable to init enough connections amount! Only xxx of xxx were initialized.
在搭建redis分布式锁的项目的时候,启动项目后redis报:Unable to init enough connections amount!
2024-12-18 00:36:37
407
原创 12.17日 leetcode java
1.图论leetcode 4题 acm模式。并且同步到githubMQ中。2.继续完成MQ业务改造。3.redis 博客撰写。
2024-12-17 14:56:30
115
原创 12.14 写了两道leetcode题目
每个ACM模式都花了30分钟,打字根本打不赢。因为要创建树,处理输入输出关系等等。二叉搜索树中第 K 小的元素。
2024-12-15 03:38:29
72
原创 12.12 Java 二叉树构建与模板讲解:应对面试中的ACM模式
写了5道二叉树的题目,ACM模式以下是针对你的代码撰写的 Markdown 笔记模板,你可以直接复制粘贴到博客或文档中使用:本文提供一个二叉树的 Java 模板代码,包括:: 节点值,存储一个整型数据。: 左子树引用。: 右子树引用。2. 主方法 ()输入处理:退出逻辑:构建逻辑:创建队列 ,用于按层处理树节点。使用 初始化根节点 ,并入队。遍历 数组,依次构建当前节点的左子树和右子树:左子树: 如果当前值非 ,创建左子节点并入队。右子树: 如果右子节点非 ,创建右
2024-12-13 03:16:45
302
原创 12.11 项目上云服务器
MySQL:3306Redis:6379(如有)Nginx:80 或 443应用:8080(或其他自定义端口)如果未开放对应端口,外部访问将会失败。使用阿里云服务器,低成本搭建开发和运行环境。使用 Docker 容器化部署,简化服务管理和迁移。利用 Docker 网络,确保容器间通信稳定可靠。
2024-12-11 22:09:26
99
原创 12 .10 jwrh面试
5.用Stream流进行一个异步下单,有别的方法吗,就是提问一个MQ。4.第一个项目的亮点是啥。1.jwt相关应用,token过期。3.docker容器化部署有了解吗。1.学一下Docker容器化部署。2.学一个MQ并升级项目。2.如何解决超卖问题的。
2024-12-10 23:14:56
75
原创 python学习笔记(类与类的继承与导入)(*8)
第七篇(写于2020/1/13家中)所用教材:python编程从入门到实践类类的创建类,我的理解就是一些方法的集合,这些方法有一定的共性 class Dog(): #
2020-01-17 01:22:11
159
原创 python学习笔记(函数)(*7)
python学习笔记(函数)(*7)第七篇(写于2020/1/7)所用教材:python编程从入门到实践命名一个函数def exp(形参): 内容 return 参数 exp(实参)#调用函数可以看到,运用def()命名了一个函数,并且括号里传形参,形参可以参与到运算中。调用时,传入实参,将实参的值赋给形参,并参与函数的运算,执行内容,返回参数。传参时的几种...
2020-01-07 17:35:11
380
原创 python学习笔记(用户输出与while循环)(*6)
python学习笔记(用户输出与while循环)(*6)第六篇(写于2020/1/6)所用教材:python编程从入门到实践input( )函数input()接受键盘的输入的一些文本并通过以下方式存到一个变量中,并且input接受参数,一般是提示信息message=input("please input some words")这样得到的类型都是字符串型,如果输入的是数字则要类型转换...
2020-01-06 16:02:14
182
原创 python学习笔记(字典)(*5)
python学习笔记(字典)(*5)第五篇(写于2020/1/5)所用教材:python编程从入门到实践什么是字典?由键与值对组成,类似于c语言的结构体,键就是目录,值对就是内容字典由 { } 来表示。定义一个字典pig={'color':'pink','size':'big'}表示有关pig的两方面信息对字典的值进行操作访问字典的值>>>print(...
2020-01-05 16:38:34
289
原创 python 学习笔记 (列表(元组)3/3)(*4)
python 学习笔记 (列表(元组)3/3)(*3)第四篇(写于2020/1/4写于寝室)所用教材:python编程从入门到实践元组和列表差不多,但元组无法修改定义元组用()定义元组yuan=(100,20)print(yuan[0])print(yuan[1])10020同时元组元素不能修改>>> yuan=(100,20)>>>...
2020-01-04 10:47:09
212
原创 python 学习笔记 (列表(列表操作)2/3)(*3)
python 学习笔记 (列表(列表操作)2/2)(*3)第三篇(写于2020/1/3写于寝室)所用教材:python编程从入门到实践此处要用到一点for循环的知识>>> cars=['bwm','toyota','suzuki']>>> for car in cars: print(car)bwmtoyotasuzuki注意...
2020-01-03 23:33:25
421
原创 python学习笔记(列表1/3 )(*2)
python 学习笔记 (列表1/2)(*2)第二篇(写于2020/1/3)所用教材:python编程从入门到实践列表是啥?类似于c语言里的数组,其中包含许多元素,命名时用复数表示挺直观的;如dogs这个列表里面就可以包含dog。。。。(用中括号[ ]表示列表,用逗号表示其中的元素)cars=['bwm','toyota','suzuki']输出列表1.全部输出cars=['b...
2020-01-03 20:47:08
407
原创 python学习笔记(字符串与数字 )(*1)
python 学习笔记(从0开始)所用教材:python编程从入门到实践变量和简单变量你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,...
2020-01-03 19:17:32
371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人