文章插图
大家好,我是哪吒 。
今天分享一下redis布隆过滤器的原理和应用场景,解决缓存穿透,实现快速入门,丰富个人简历,提高面试level,给自己增加一点谈资,秒变面试小达人,BAT不是梦 。
一、缓存预热Redis缓存预热是指在服务器启动或应用程序启动之前,将一些数据先存储到Redis中,以提高Redis的性能和数据一致性 。这可以减少服务器在启动或应用程序启动时的数据传输量和延迟,从而提高应用程序的性能和可靠性 。
1、缓存预热常见步骤(1)数据准备在应用程序启动或服务器启动之前,准备一些数据,这些数据可以是静态数据、缓存数据或其他需要预热的数据 。
(2)数据存储将数据存储到Redis中,可以使用Redis的列表(List)数据类型或集合(Set)数据类型 。
(3)数据预热在服务器启动或应用程序启动之前,将数据存储到Redis中 。可以使用Redis的客户端工具或命令行工具来执行此操作 。
(4)数据清洗在服务器启动或应用程序启动之后,可能会对存储在Redis中的数据进行清洗和处理 。例如,可以删除过期的数据、修改错误的数据等 。
需要注意的是,Redis缓存预热可能会增加服务器的开销,因此应该在必要时进行 。同时,为了减少预热的次数,可以考虑使用Redis的其他数据类型,如哈希表(Hash)或有序集合(Sorted Set) 。此外,为了提高数据一致性和性能,可以使用Redis的持久化功能,将数据存储到Redis中,并在服务器重启后自动恢复数据 。
2、代码实现
@Component@Slf4jpublic class BloomFilterInit{@Resourceprivate RedisTemplate redisTemplate;//初始化白名单数据@PostConstructpublic void init() {//1 白名单客户加载到布隆过滤器String key = "customer:1";//2 计算hashValue,由于存在计算出来负数的可能,我们取绝对值int hashValue = https://www.isolves.com/it/cxkf/bk/2023-05-15/Math.abs(key.hashCode());//3 通过hashValue和2的32次方后取余,获得对应的下标坑位long index = (long)(hashValue % Math.pow(2,32));log.info(key+" 对应的坑位index:{}",index);//4 设置redis里面的bitmap对应类型白名单:whitelistCustomer的坑位,将该值设置为1redisTemplate.opsForValue().setBit("whitelistCustomer",index,true);}}
二、缓存雪崩Redis缓存雪崩是指在缓存系统中,由于某些原因,缓存的数据突然大量地被删除或修改,导致缓存系统的性能下降,甚至无法正常工作 。1、什么情况会发生缓存雪崩?(1)误删除由于误操作或故障,缓存系统可能会误删除一些正常的数据 。这种情况通常会在数据库中发生 。
(2)误修改【你管这破玩意叫缓存穿透?还是缓存击穿?】由于误操作或故障,缓存系统可能会误修改一些正常的数据 。这种情况通常会在数据库中发生 。
(3)负载波动缓存系统通常会承受一定的负载波动,例如,在高峰期间,数据量可能会大幅增加,从而导致缓存系统的性能下降 。
(4)数据变化频繁如果缓存系统中的数据变化频繁,例如,每秒钟都会有大量的数据插入或删除,那么缓存系统可能会因为响应过慢而导致雪崩 。
2、Redis缓存集群实现高可用
- 主从 + 哨兵
- Redis集群
- 开启Redis持久化机制aof/rdb,尽快恢复缓存集群 。
(2)数据同步定期同步数据,以防止数据不一致 。
(3)负载均衡使用负载均衡器将请求分配到多个Redis实例上,以减轻单个实例的负载 。
(4)数据优化优化数据库结构,减少数据变化频繁的情况 。
(5)监控与告警监控Redis实例的性能指标,及时发现缓存系统的异常,并发出告警 。
三、缓存穿透Redis缓存穿透是指在Redis缓存系统中,由于某些原因,缓存的数据无法被正常访问或处理,导致缓存失去了它的作用 。
1、什么情况会发生缓存穿透?(1)数据量过大当缓存中存储的数据量过大时,缓存的数据量可能会超过Redis的数据存储限制,从而导致缓存失去了它的作用 。
(2)数据更新频繁当缓存中存储的数据更新频繁时,缓存的数据可能会出现异步的变化,导致缓存无法被正常访问 。
(3)数据过期当缓存中存储的数据过期时,缓存的数据可能会失去它的作用,因为Redis会在一定时间后自动将过期的数据删除 。
推荐阅读
- 雕刻|藏传里不起眼的小玩意,包浆一绝还不要钱!
- 校园招聘|这破班一天也不想上了,女生晒上班前后对比照,颜值惨遭滑铁卢
- 文玩|这3种“破玩意”10块钱一公斤,别瞧不起,包浆后真美!
- 文玩|文玩人你的玩意怎么越来越多?
- 核磁共振是什么(核磁共振什么玩意)
- 什么玩意儿(什么玩意儿视频是谁)
- 紫藤图片大全大图.这两种植物是啥玩意儿
- 玛玛哈哈是什么玩意 奥兹玛三牛是什么意思
- 好玩意什么意思 好玩意
- 小S|小S曝具俊晔送姐姐情人节礼物!奢华,限量,网友吐槽:什么玩意!