这是我参与「第五届青训营 」伴学笔记创作活动的第 17 天
这篇文章主要是收集了笔者在学习今天的课程,在学习了一些Redis使用思路设计与实现课程后并进行实践操作后,总结了一些注意点。
Redis使用注意点
使用缓存带来的相关问题
缓存击穿和缓存穿透
在之前的文章中已经讲解了。
缓存雪崩
缓存雪崩,类似于前面两种缓存问题,本质上也是因为大量的请求直接查询数据库,而导致服务器压力过大。只不过,这次是因为,某些缓存在同一时间失效,或者是redis服务宕机了。
解决方法有很多,市场上主流的方法有以下几种:
- 设置随机的TTL
既然我们没办法改变“缓存”会失效的现实,那么,我们让那堆缓存,在不同的时间失效不就行了?这样无疑就会使得服务器的压力小很多,因为在同一时间内更新缓存更少了,查询数据库的操作数目被“均摊”了。实现方法,就是为不同方面的缓存设置不同的过期时间,令它们在经历不同的TTL后再过期即可。
- 设置热点信息永不过期
在我们的某些项目业务中,我们很容易可以发现,有部分缓存的使用频率,是极其高的。比如,商品业务的优惠卷的剩余库存,通常的查询率达到很高的数量级,而我们又简单分析了一下——设置这些库存信息根本就占用不了多大内存呀!那么,让这种缓存设置过短的TTL,甚至是设置TTL这件事情,都是不合理的。此时,我们就可以把这些热点信息,的TTL设置为无穷大,以减少服务器压力。
- 添加redis集群
redis服务机宕机怎么办?搞多一台redis服务机!两台都宕机咋办?干脆整个集群得了!所以,在一些需要保证redis效率和安全性的项目系统中,我们通过通过添加redis集群,来提高系统的可用性。