- 博客(7)
- 收藏
- 关注
原创 Redis的数据删除(过期)策略
设置该key过期时间后,我们不去管它,当需要该key时,我们在检查其是否过期,如果过期,我们就删掉它,反之返回该key:对CPU友好,只会在使用该key时才会进行过期检查,对于很多用不到的key不用浪费时间进行过期检查。缺点:对内存不友好,如果一个key已经过期,但是一直没有使用,那么该key就会一直存在内存中,内存永远不会释放。
2025-04-02 15:37:06
460
原创 MySQL与Redis进行同步(双写一致性)
我们当时采用的阿里的canal组件实现数据同步:不需要更改业务代码,部署一个canal服务,canal服务把自己伪装成mysql的一个从节点,当mysql数据更新以后,canal会读取binlog数据,然后在通过canal的客户端获取到数据,更新缓存即可。候选人,延迟双删,如果是写操作,我们先把缓存中的数据删除,然后更新数据库,最后再延时制除缓存中的数据,其中这个延时多久不太好确定,在延时的过程中可能会出现脏数据,并不能保证强一致性,所以没有采用它。①使用MQ中间中间件,更新数据之后,通知缓存删除。
2025-04-01 15:34:57
521
原创 Redis缓存三兄弟——穿透、击穿、雪崩
当然是有缺点的,布降过滤器有可能会产生一定的误判,我们一般可以设置这个误判率,大概不会超过5%,其实这个误判是必然存在的,要不就得增加数组的长度,其实已经算是很划分了,5%以内的误判率一般的项目也能接受,不至于高并发下压倒数据库。缓存击穿的意思是对于设置了过期时间的kev,缓存在某个时间点过期的时候,恰好这时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把DB压垮。:缓存空数据,查询返回的数据为空,仍然把这个空结果进行缓存。
2025-03-31 15:27:51
1036
原创 SpringBoot的文件上传到本地
/将接收的文件转存到磁盘文件中。//获取接收到的文件内容的输入流。//获取文件的大小,单位:字节。//获取文件内容的字节数组。后端MultipartFile。
2025-03-20 19:12:59
119
原创 SpringBoot开发环境的热部署
在实际的项目开发调试过程中会频繁地修改后台类文件,导致需要重新编译.重新启动,整个过程非常麻烦,影响开发效率。Spring Boot提供了spring-boot-devtools组件,使得无须手动重启SpringBoot应用即可重新编译、启动项目,大大缩短编译启动的时间。devtools会监听classpath下的文件变动,触发Restart类加载器重新加载该类从而实现类文件和属性文件的热部署。
2025-02-27 18:21:21
206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人