自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记录redis面试知识点 - redis分布式锁

有时候为了提高性能和可用性,会部署redis集群,如果使用的是redis主从模式,主节点负责写,从节点负责读,那么就可能会出现在redis主节点锁住资源A,接着宕机了,从节点还没同步主节点的锁,就被选举上位,就能够再次对资源A再次上锁,违反了锁的互斥性。我们假设微服务A先取得资源A,但由于JDK的锁是基于JVM运行的,只能锁住单个JVM进程中的资源A,其他微服务是无法锁住,因此微服务B也取得了资源A。这时新的问题有出现了,如果我们的业务没执行完,锁就失效了,这样就出问题了呀,有以下两种解决方案。

2023-09-01 14:59:43 22 1

原创 记录redis面试知识点 - 一致性问题、持久化问题、数据过期删除策略、数据淘汰策略

假设缓存中没有该数据(如果有缓存就不会去查询数据库),线程1查询不到缓存数据,会到数据库中查,然而在缓存到redis之前,线程2更新了数据库并且删除缓存(没得删),线程1这时才缓存数据到redis,两者数据就会不一致。在保存RDB文件的过程中,如果有数据被修改,redis会在内存中也复制一份副本,所有的修改在这个副本中执行,等到RDB完成后,再将副本中的修改覆盖到redis工作内存中。我们有两种更新redis缓存的办法,第一种是先删缓存后更新数据库,第二种是先更新数据库后删缓存;这两种方式都有一定的问题。

2023-08-31 17:16:37 38

原创 记录Redis面试知识点 - 缓存穿透、击穿、雪崩

​最近在准备面试,决定先从redis开始,目前的方式是通过看视频和博客来巩固旧知识,并学习新知识。本来是想用markdown来记录笔记,但发现对于复习而言,在看一个知识点的时候,会看到写在下面的答案或知识点。因此我这次使用了思维导图软件xmind来进行记录,目的只是为了方便自己复习,因为可以将知识点一个一个展开,展开前还可以在脑子里思考一下,尝试回答什么的。个人比较少使用xmind,因此记录的并不是很好,但个人使用应该是足够了,文章只是为了记录一下学习历程。

2023-08-29 19:36:44 33

原创 记一次SQL优化

这个SQL的套了一个子查询,子查询的表有20万左右的数据,然而查询条件的字段却没有加索引,所以每次都走全表查询,导致更新速度巨慢。客户反馈说有一个功能执行的太慢,数据量5000的情况下就需要5分钟了。我看了一下逻辑,发现里面是这条SQL导致的。我直接好家伙,一条SQL跑了足足五分多钟,算上其他的逻辑客户都等睡着了。速度一下子就快了 ,0.058s跑完。

2023-08-24 19:20:42 29 1

原创 EasyExcel通用导入组件

注:这里只是最简单的实现,可以参考官方文档中每100行存一次数据库,不然excel文件过大的情况下容易导致OOM。众所周知,easyExcel在继承或实现组件类时,是规定了泛型的,如此就代表一个监听器也许对应的是一个实体类。将AnalysisEventListener的泛型抹掉,使用Object类型的list来缓存数据。本文的前提是了解easyExcel的基本使用,如果不了解可以去官网,官方文档可以帮助你快速入门。但要是想所有类都是用一个方法来导入呢,就需要将泛型抹掉。实体类:DemoData.java。

2023-08-24 18:56:22 156 2

空空如也

空空如也

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

TA关注的人

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