![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
缓存
文章平均质量分 60
huapro.vip
不忘初心
展开
-
缓存淘汰算法
缓存淘汰策略的实现从本质上来说,缓存算法并没有好坏之分,只有是否适用当前的业务场景。因此根据不同的业务场景设置不同的缓存算法会使缓存命中率更高。一、FIFOFIFO(First in First out)先进先出。可以理解为是一种类似队列的算法实现实现概念:最先进来的数据,被认为在未来被访问的概率也是最低的,因此,当规定空间用尽且需要放入新数据的时候,会优先淘汰最早进来的数据。优点:没什么优点缺点:算法逻辑设计所实现的缓存的命中率是比较低,没有任何额外逻辑能够尽可能的保证常用数据不被淘汰掉。二原创 2022-02-11 17:35:29 · 354 阅读 · 0 评论 -
Redis之RDB与AOF 笔记
AOF定义:以日志的形式记录每个操作,将Redis执行过的所有指令全部记录下来(读操作不记录),只许追加文件但不可以修改文件,Redis启动时会读取AOF配置文件重构数据换句话说,就是Redis重启就会根据日志内容从头到尾执行一次来完成数据的恢复工作。Tip: 一.RDB与AOF同时开启 默认先加载AOF的配置文件 二.相同数据集,AOF文件要远大于RDB文件,恢复速度慢于RDB 三.AOF运行效率慢于RDB,但是同步策略效率好,不同步效率和RDB相同1.RDB持久化(以快照的方式) 策原创 2022-02-11 16:57:07 · 63 阅读 · 0 评论 -
Mybatis 有二级缓存,为什么还要用 redis
Mybatis 一级缓存作用域是 session,session commit 之后缓存就失效了。Mybatis 二级缓存作用域是 sessionfactory,该缓存是以 namespace 为单位的(也就是一个 Mapper.xml 文件),不同 namespace 下的操作互不影响。所有对数据表的改变操作都会刷新缓存。但是一般不要用二级缓存,例如在 UserMapper.xml 中有大多数针对 user 表的操作。但是在另一个 XXXMapper.xml 中,还有针对 user 单表的操作。这会导原创 2022-02-11 16:39:49 · 1322 阅读 · 0 评论 -
缓存雪崩 击穿 穿透
雪崩造成的原因?1 如果你不是主从或者集群部署,那么当你的一个 redis 节点挂掉,或者机器掉电了,那么你这个节点的 key 就会全部丢失 ,此时以前这个 key 的流量就会流向其他节点,而其他节点没有这些 key,那么流量就会到达 db 重新加载数据到 cache,那么你的 db 就可能被大流量超过你的所能承载的流量而被压垮。2 如果你的大部分 key 设置了相同的过期时间,那么 key 就会在相同的时刻失效,那么也会造成大流量流入到 db 而压垮你的 db,一般会出现在你直行了一个离线任务定时更新原创 2022-02-11 16:37:17 · 327 阅读 · 0 评论