关键词:
缓存穿透:redis跟数据库都不存在,比如拿一个不存在的用户id请求,请求就会打到db上。
解决方式:生成一个有效时间的占位数据来代替。
缓存击穿:redis不存在,数据库存在,一般是redis的某个key突然过期,前端并发请求到db。
解决方式:可以通过redis分布式锁或者同步代码块,只让一个线程可以访问db再更新缓存。
缓存脏数据:延迟双删(不靠谱),先删除redis,再更新,再删除redis。应该先更新db,再删除redis。
[要点1]: 缓存一般是用来加速数据库的读操作的,读的顺序是先缓存,后数据库;写的顺序是先数据库,后缓 存。
[要点2]: 缓存的数据不易过大,尤其是 Redis,因为 Redis 使用的是单线程模型,单个缓存 key 的数据过大时,会阻塞其他请求的处理。
[要点3]: 缓存的 key 都必须设定缓存失效时间,且失效时间不能集中在某一点,可采取随机算法处理过期时间,否则会导致缓存占满内存或者缓存穿透。
[要点3]: 业务上应避免批量删除缓存处理,如redis的自带的deleteByPrefix,特殊情况下会阻塞Redis。
微服务springboot整合redis实战开发解决高并发数据缓存
一、什么是缓存?缓存(Cache),就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据,一般从数据库中获取,存储于本地代码,例如:例1:StaticfinalConcurrentHashMap<K,V>map=newConcurrentHashMap<>();本地用于高并发例2:staticfinalCache<K,... 查看详情
redis个人笔记:redis应用场景,redis常见命令,reids缓存击穿穿透,redis分布式锁实现方案,秒杀设计思路,redis消息队列,reids持久化,redis主从哨兵分片集群
Redis常见数据结构及高级数据结构使用场景,Redis应用场景,Redis常见命令,Reids缓存击穿穿透,Redis分布式锁实现方案,秒杀设计思路,Redis消息队列,Reids持久化,Redis主从哨兵分片集群Redis常见数据结构及高级数据结构使用场景... 查看详情
从零开发短视频电商缓存cache实战simplecaffeine和redis多缓存管理器(代码片段)
文章目录SpringBoot集成缓存Cache1.增加pom依赖2.启用缓存功能常见缓存操作缓存清除缓存更新缓存组合缓存类缓存配置SpEL上下文数据Cache实现之Redis缓存管理器方式一RedisCacheConfiguration方式二RedisCacheManagerBuilderCustomizer方式三CachingConfi... 查看详情
巨细!github星标99k的阿里内部springboot2.5.x开发实战笔记
阿里SpringBoot2.5.x开发实战笔记本笔记全面覆盖了SpringBoot2.5新特性、自动化配置原理、如何开发RESTAPI、实战MySQL数据库、Redis高并发缓存、MongoDB数据库、MQ消息队列、安全机制、性能监控、高级面试题等热门知识点。SpringBoot2.5新... 查看详情
硬核|redis布隆(bloomfilter)过滤器原理与实战(代码片段)
在Redis缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?中我们说到可以使用布隆过滤器避免「缓存穿透」。码哥,布隆过滤器还能在哪些场景使用呀?比如我们使用「码哥跳动」开发的「明日头条」APP看新闻,如何做到每次... 查看详情
云原生之docker实战使用docker部署siyuan个人笔记系统
【云原生之Docker实战】使用Docker部署siyuan个人笔记系统一、siyuan介绍二、检查宿主机系统版本三、检查本地docker环境1.检查docker服务状态2.检查docker配置信息3.开启IPv4forwarding四、下载siyuan镜像五、创建siyuan容器1.创建目录2.目录授... 查看详情
云原生之docker实战使用docker部署trilium个人笔记工具
【云原生之Docker实战】使用Docker部署TriliumNotes个人笔记工具一、TriliumNotes介绍二、检查宿主机系统版本三、检查本地docker环境1.检查docker服务状态2.检查docker配置信息3.开启IPv4forwarding四、安装docker-compose1.下载docker-compose二进制包2... 查看详情
redis学习笔记10:redis缓存穿透和雪崩
Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那... 查看详情
redis技术专区「实战案例」谈谈使用redis缓存时高效的批量删除的几种方案
前因后果之前我们的服务,在上线的时候发现有一些大Key的使用不是很规范,特别是没有设置过期时间,因此导致redis中内存的数据越来越多,目前Redis节点的内存已经快撑不住了。所以根据缓存键的规则去批量删除这些数据,... 查看详情
个人理解的redis
为什么不使用memcached:mysql需要不断进行拆表,memached也要跟着不断扩容,占用大量开发时间redis缓存放在内存中所以处理速度会比较快(吧数据库的热点数据放到缓存里面这样会加速访问),非持久化RDB内存快照和AOF日志文... 查看详情
redis从入门到实战(一redis简介)
...简介:码上言⭐代表教程:SpringBoot+vue-element开发个人博客项目实战教程⭐专栏内容:Redis从入门到实战、个人博客系统文章目录1、NoSQL1.1、什么是NoSQL?1.2、NoSQL特点... 查看详情
读书笔记ios-个人开发者与企业开发者的区别
个人开发者与企业开发者的一个主要的区别在于独立开发者授权描述文件必须列出具体的设备。另一个不同就是开发者账户最多使用100台设备,而企业则可以让苹果公司生成未锁定到特定设备并可以安装到任何设备上的授权描述... 查看详情
经验小结(个人笔记)
架构方向:mysql+redismysql读 redis写 涉及到mysql+redis主从复制使用触发器和排队任务 1、当数据修改,优先将数据存入redis从表,并在redis消息队列中加入表更改的任务,使用定时器逐步触发到mysql中 2、数据备份,redis和mysql分别... 查看详情
springboot学习springboot集成shiro前后端分离使用redis做缓存个人博客搭建(代码片段)
shiro-redis目录shiro-redis下载shiro-core/jedis版本对比图使用前如何配置?设置文件Redis独立Redis哨兵Redis集群SpringRedis独立Redis哨兵Redis集群序列化器Serializer可配置选项ConfigurableOptionsRedis管理器RedisSessionDAOCacheManager缓存管理器弹簧启... 查看详情
java开发实战讲解!dockerformac原理
...等之类的搞不明白你就上不去呀。再看美团亿级流量Redis实战,Redis分布式锁、session、缓存与数据库一致性问题、缓存雪崩等之类的都是重中之重的技术点,必须掌握,没得商量。看 查看详情
java开发实战讲解!dockerformac原理
...等之类的搞不明白你就上不去呀。再看美团亿级流量Redis实战,Redis分布式锁、session、缓存与数据库一致性问题、缓存雪崩等之类的都是重中之重的技术点,必须掌握,没得商量。看 查看详情
#redis实战读书笔记(代码片段)
Redis实战读书笔记(一)初始RedisRedis是一个远程内存数据库,它不仅性能强劲而且还具有复制特性以及为解决问题而生的独一无二的数据模型。Redis提供了5中不同类型的数据库,初次之外通过复制持久化和客户... 查看详情
redis实战-redis单机环境搭建(代码片段)
Redis,业界也用了很多年了,可以说不管是什么体量的公司,基本都会选择使用它来做为公司业务服务的缓存层,它也成为了业界缓存的事实标准(但是需要缓存海量数据的业务场景中不太适用,比... 查看详情