缓存
文章平均质量分 88
谈谈1974
火萎了,我也准备走了
展开
-
缓存一致性设计方案
文章目录前言1. 缓存一致性2. 缓存一致性设计分析2.1 先淘汰缓存,再更新数据2.2 先淘汰缓存,再更新数据3. 实用方案-延时二次淘汰前言公司项目中发生了缓存一致性的问题,具体场景如下:系统的业务配置更新为生效状态后,业务服务实际使用的配置数据还是旧版本的数据偶现业务服务使用的配置数据不完整,造成业务流程异常项目中引入了缓存,排查问题时发现 redis 中缓存的数据就是旧版本数据,而且有时会发生缓存中配置数据不完整的现象。分析代码,发现导致缓存数据与数据库数据不一致的原因有两个,本文原创 2021-10-16 12:24:28 · 471 阅读 · 0 评论 -
缓存穿透等概念
1. 缓存穿透通俗地说缓存穿透就是用户对不存在的数据发起请求.比如用户请求 id = -1 的数据,缓存中当然不会有这条数据, 那就只能去数据库查找,而数据库也不会有,只能全表扫描. 当用户不断发起该类请求,那就很可能是攻击者, 攻击会导致数据库压力过大.解决方法:对请求进行过滤校验, 对 id<=0 的不合法请求直接拦截, 可使用布隆过滤器.对不存在的数据缓存一个空数据,如果在缓...原创 2019-08-09 14:03:34 · 1575 阅读 · 0 评论 -
Redis 指南(2)-重要概念
1. Redis 的数据类型Redis 是典型的 Key-Value 型存储系统,所有数据类型都以 key 作为标识,总共可分为 5种 数据类型.当设置数据时 Nx(if not exist) 参数意味着如果 key 不存在则可以设置,可以用于实现分布式锁.1.1 String最简单的数据类型, 使用方式为 set key value.1.2 List其实是双向链表, 使用方式为 lpu...原创 2019-08-19 13:47:56 · 872 阅读 · 0 评论 -
Redis 指南(3)-使用进阶
1. Redis分布式锁1.1 基本使用用setnx来争锁,抢到之后,再用expire给锁加一个过期时间防止锁忘记了释放。1.2 可能问题如果在setnx之后,执行expire之前Redis进程意外crash或者要重启维护了怎么处理?set指令可以组合复杂的参数,可把setnx和expire合成一条指令来用的,保证争锁和设置过期时间的原子性。2. Redis查找Key2.1 基本...原创 2019-08-27 12:19:34 · 645 阅读 · 1 评论