redis是用来保存一些常用的数据到内存,以加快数据读取,减少直接访问DB流量以降低DB压力。既然是放到内存的,那我们怎么样保证用户使用的时候不会出现与数据的差异呢,其实这叫“如何报证缓存数据的一致性”,那么如何保证呢?
1.定时刷新:可以设置五分钟或十分钟刷新一次数据,让缓存数据和数据库保证一致。
2.当数据库的数据发生改变的时候,进行同步缓存数据。
3.用户看到的时缓存数据,操作的是数据库数据。这个是不是感觉理解起来有点难受,比如小米手机大家都知道吧,一直需要抢,当开始的时候你还没点立即购买按钮的时候,页面是显示有货,当你点了就显示“已售完”。(其实我觉得这个也就是一种偷懒的解释)为什么会有这种思想呢,因为大家都知道那本身就是缓存数据,对数据的准确度要求的没那么高,当然这种是要分业务场景的,用在一些不是特别重要的场景 比如点赞,多一个少一个不是那儿重要。