昨天梦塔给大家分享了《一文学会如何使用缓存(上)》,我们对缓存做了一些整体上的概述,那今天呢,我们讲下如何正确使用缓存!
01
使用缓存会遇到哪些问题
虽然缓存可以提高整体性能,但是它也可能会带来别的问题。
例如使用缓存之后,就相当于把数据存放了2份,一份是在数据库中,另一份存放在缓存中。
当有新的数据要写入或者旧数据需要更新的时候,如果我们只更新了其中一份数据源,那两边的数据就不一致了,所以这里就存在一个缓存数据与数据库数据如何进行有效且快速的同步问题,才可以保证数据的最终一致性。
另外,加上缓存服务其实也引入了系统架构的复杂度,还需要额外的关注缓存自身带来的下列问题:
缓存的过期问题
设计缓存的过期时间需要非常的有技巧,且必须与业务实际情况相结合。
因为如果设计的过期时间太短了,那会导致缓存效果不佳,且还会造成频繁的从数据库中往缓存里写数据。
如果缓存设计的过期时间太长了,又会导致内存的浪费,这里需要根据业务把控一个度。
缓存的命中率问题
这也是设计缓存中需要存放哪些数据的很重要一点,如果设计的不好,可能会导致缓存命中率过低,失去缓存效果。
一般对于热点数据而言,要保证命中率达到70%以上效果最佳,这里就要求并不是所有的业务都适合使用缓存。
2
缓存一致性问题