自定义博客皮肤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的缓存穿透,缓存击穿,缓存雪崩以及解决办法缓存穿透key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。解决办法:缓存穿透时查询的数据都没有做缓存,导致直查数据库,从而失去缓存的意义。最常用的办法有:采用布隆过滤器,布隆过滤器是用位图(

2021-07-30 00:22:31 67

原创 redis如何实现持久化

RDB Redis DataBase简介rdb是一种快照形式的数据存储方式,每隔一段时间将内存中的数据集体写入到二进制文件,落盘。目前有三种方式:a) save:阻塞,操作时不能写入数据;执行完成时候如果存在老的RDB文件,就把新的替代掉旧的。我们的客户端可能都是几万或者是几十万,这种方式显然不可取。b) bgsave: 非阻塞的,具体操作是Redis进程执行fork操作创建子进程,RDB持久化过程由子进程负责,完成后自动结束。阻塞只发生在fork阶段,一般时间很短。基本上 Redis 内部所有的R

2021-03-18 23:14:30 78

原创 jvm学习

jvm主要分为四个部分:1、类加载器:在JVM启动时或者在类运行时将需要的class加载到JVM中(加载,检查,准备,解析,初始化),加载机制为双亲委派机制,目的是为了防止重复加载,当一个java程序需要使用某个类时,如果此类还未被加载到内存中,jvm会通过以上步骤对类进行初始化,类的加载是把类的.class读到内存中,通常是创建一个字节数组读入.class,然后产生与所加载的类对应的class对象,加载完成之后,进入连接阶段包括验证,准备(为静态变量分配内存并设置默认的初始化值)和解析(将符号引用替换为

2021-03-11 23:37:20 83

原创 反射

测试的

2021-02-25 22:19:51 75 1

原创 hashmap源码理解

1、hashmap的扰动函数: static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); }当key的hashCode()位数小于16位时,扰动函数不作用,当位数大于16位时,会出发扰动函数,此时key的hashCode()的高半区的16位的数据不变,低半区16位的数据将和高半区的16位数据进行异或

2021-02-20 17:19:26 82 2

空空如也

空空如也

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

TA关注的人

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