- 博客(6)
- 收藏
- 关注
原创 Redis持久化、数据过期策略、数据淘汰策略
(Least Frequently Use):最近最不常使用,统计key最近的使用频率,频率越低越先淘汰。:将redis处理的命令写在一份文件中,此时当redis重启时只需要将文件里的命令再执行一遍就行。(Least Recently Use):最近最少使用,当前时间减去最近使用时间,值越大越先淘汰。将内存中所有元素都存入磁盘中,这样在redis故障重启后,将磁盘里所有的数据恢复进内存即可。:不删除key,直到调用的时候查看数据的TTL,过期了再删除。
2025-10-11 21:42:25
109
原创 缓存三兄弟——穿透、击穿、雪崩
1.当查询一个不存在的数据时,可以向redis中以该查询条件为key创造一个空数据,这样再查询时就不会一直穿透到数据库。当查询时,第一个线程拿到互斥锁,先读取逻辑过期时间看数据是否过期,如果过期,那么开辟一个新线程更新数据,同时把旧数据返回。当查询一个不存在的数据时,如果数据库一直不向缓存区写数据,那么查询会一直穿透redis直达数据库,从而导致数据库压力过大可能挂掉。当大量的key同时失效,而此时有大量的查询,或者redis服务宕机了,都会导致同时有大量的请求到达数据库。面试必考三兄弟,可用限流来保底。
2025-10-11 15:25:51
705
原创 MySql索引问题
假设每个数据1kb, 那么叶子节点有16kb就可以储存16条数据, 非叶子节点的16kb是16384字节, 每个主键加索引是8+6=14字节, 那么可以储存16384/14=1170个指针, 那么二层B+树总共可以存1170*1170*16=21902400条数据。Tips: 假设索引是(a,b,c), 如果使用(b,c)或者c都不能查询, 使用(a,c)可以, 如果b使用了范围查询, c不能查询, 因为b范围查询后c就无序了。聚集索引就是叶子节点储存了整行数据, 非聚类索引就是叶子节点储存了主键。
2025-09-22 15:12:55
234
原创 SpringBoot错题记录
在spring启动类有一个注解@SpringBootApplication封装了注解@EnableAutoConfiguration,该注解底层封装了一个注解@Import用于导入对应的配置选择器,导入了一个ImportSelector接口的实现类,在这个实现类中读取了META文件中所有需要自动装配的类的类名.基于动态代理,在连接点标注的方法执行时会生成一个代理对象,然后在运行方法前就可以执行一些其他方法比如记录日志之类的,从而实现对方法的增强。session:每个会话范围内会创建一个新的bean。
2025-08-28 15:03:53
142
原创 Mevan的继承与聚合
一个标签,写在父工程中,用于管理子类中的依赖.父类不会引入该标签下的依赖,但当子类需要调用该标签下依赖时,子类会根据父类<dependencyManagement>标签中写的信息引入对应版本的依赖.比如,父类的<dependencyManagement>声明了lombok依赖,父类本身不会引入,但如果继承该父类的子工程需要引入lombok依赖,那么它便会按照父类<dependencyManagement>中声明的lombok配置来引入lombok依赖.
2025-08-19 00:46:48
575
原创 一些关于SpringAOP的理解
在登陆系统中,接收数据的对象是emp,此时,用getArgs()获取对象的数组中只会有一个传入过来的emp对象,但由于getArgs()会把内容都转换为Object类,所以在使用时需要强转一次转回emp,这时就可以用emp的方法获取输入进来的username和password。在做完后,我觉得AOP是看着方法,通过这个方法获取一些值,比如类名,方法名,入参.这样的好处是不需要修改原本的代码就可以对方法进行管理和记录日志,这里的登陆方法就可以归于记录日志中。.getName() --- 获取目标方法名。
2025-08-16 02:21:35
515
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅