站内搜索

搜索

06-02 13:26
05-31 17:11

面试-redis-缓存

47

主题

38

点数

151

积分

地衡测影

积分
151

柴到了

发表于 2025-3-21 02:00:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

Redis

缓存

缓存穿透:在服务端请求一个数据库没有数据值,如果没有命中redis里面的缓存会直接请求数据库,如果大量这种没有的请求就会导致数据库宕机。

解决方案:

1.将不存在的数据库所有请求都设为null值。缺点:消耗大量内存,可能发生不一致问题。

2.使用布隆过滤器。缺点:实现复杂,存在误判。

缓存击穿:设置了key的过期时间在过期的时候遭受大量并发请求会给数据库压垮。

解决方案:

1.互斥锁,保证数据强一致性性能差。

2.逻辑过期,高可用性能优不能保证数据绝对一致。

缓存雪崩:同一时段有大量的缓存key请求同时失效或者redis宕机,导致大量请求到达数据库。

解决方案:

1.给不同的key的TTL添加随机值。

2.利用redis集群提高服务。3.给缓存业务添加降级限流业务。4.添加多级缓存。

Redis数据删除策略

惰性删除:设置该key的过期时间,等需要使用该key再去检查是否过期,过期删除反之使用。

优点:对CPU友好。缺点:如果没有使用该key则一直会存在内存中并且永远不会释放。

定期删除:每隔一段时间就会对key进行检查,删除里面的过期key。

定期删除两种的模式:

1.SLOW模式是定时任务,执行频率默认为10hz,每次不超过25ms,以通过修改配置文件redis.conf的hz 选项来调
整这个次数。

2.FAST模式执行频率不固定,但两次间隔不低于2ms,每次耗时不超过1ms。

优点:可以通过限制删除操作执行的时长和频率来减少删除操作对 CPU 的影响。另外定期删除,也能有效释放过期键
占用的内存。

缺点:难以确定执行的时长和频率

数据淘汰策略:

1.Redis提供了8种不同的数据淘汰策略,默认是noeviction不删除任何数据,内存不足直接报错。

2.LRU:最少最近使用。用当前时间减去最后一次访问时间,这个值越大则淘汰优先级越高。

3.LFU:最少频率使用。会统计每个key的访问频率,值越小淘汰优先级越高。

温馨提示:看帖回帖是一种美德,您的每一次发帖、回帖都是对论坛最大的支持,谢谢! [这是默认签名,点我更换签名]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入社群

加入社群

Pixtech

Powered by Pixtech

© 2025 Pixtech Team.