自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis之内存淘汰机制

volatile-ttl:当内存不足以容纳新写入的数据时,在设置了过期时间的键空间中,有更早过期时间的key优先移除.volatile-lru:当内存不足以容纳新写的数据时,在设置了过期时间的键空间中,移除最近最少使用的key.volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个key.allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key,这个是最常用的.

2023-09-08 16:18:20 60 2

原创 Redis之过期策略

但即使是这样,依旧有问题,如果定期删除漏掉了很多过期的key,然后没办法及时去查,也就没走惰性删除,此时依旧有可能大量过期的key堆积在内存里,导致内存耗尽.在设置该key过期时间后,我们不去管它,在需要该key时,redis会检查其是否过期,如果过期,我们就删掉它.反之返回该key.FAST模式执行频率不固定,每次事件循环会尝试执行,但两次间隔不低于2ms,每次耗时不超过1ms.我们就对一些key进行检查,删除里面过期的key.这个时候就需要内存淘汰机制了.

2023-09-08 15:09:16 84 1

原创 Redis之数据持久化

AOF的含义是追加文件,当redis操作写命令的时候,都会存储这个文件中,当redis实例宕机恢复数据的时候,会从这个文件中再次执行一遍命令来恢复数据,我们通常在项目中也会使用AOF来恢复数据,因为采用了追加方式,如果不做任何处理的话,AOF文件会变得越来越大,就会导致恢复数据变慢,虽然AOF恢复数据的速度慢一些,但是它丢失数据的风险要小很多.

2023-09-08 11:48:06 48 1

原创 Redis之缓存雪崩

缓存雪崩意思是设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全部转发到数据库,数据库瞬时压力过重雪崩,与缓存击穿的区别:雪崩是很多key,击穿是某一个key缓存.解决方案主要是可以将缓存失效时间分散开,比如可以在原有的失效时间基础上增加一个随机值,比如1-5分钟随机,这样每一个缓存的过期时间的重复率就会降低,就很难引发集体失效的事件.

2023-09-08 11:27:05 38 1

原创 Redis之缓存击穿

缓存击穿的意思是对于设置了过期时间的key,缓存在某个时间点过期的时候,恰好这个时间点对于这个key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端数据库加载数据并回设到缓存,这个时候大并发请求可能会瞬间把数据库压垮.当缓存失效时,不立即去load db,先使用Redis的setnx去设置一个互斥锁,当操作成功返回时再进行load db的操作,并回设缓存,否则重试get缓存的方法。如果选择数据的强一致性,建议使用分布式锁的方案,性能上可能没那么高,锁需要等,也可能产生死锁的问题.

2023-09-08 11:18:27 69 1

原创 Redis之缓存穿透

布隆过滤器主要是用于检索一个元素是否在一个集合中,它的底层 主要是先去初始化一个较大的数组,里面存放的二进制0或1,在一开始都是0,当一个key来了之后经过3次hash计算,模于数组的长度找到数据的下标,然后把数组中原来的0改为1,这样的话,三个数组的位置就能标明一个key的存在.缓存穿透是指查询一个一定不存在的数据,如果从存储层查不到数据,则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,可能导致数据库挂掉,我们一般用布隆过滤器来解决.在这里扩展一个小知识:布隆过滤器。

2023-09-08 09:12:31 35 1

原创 JAVA基础

用于了解学习JAVA基础

2023-07-18 21:08:46 61 2

原创 JAVA总结

JAVA基础

2023-07-18 20:52:45 32 1

空空如也

空空如也

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

TA关注的人

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