第三日八股文

1.Redis中的三种高效缓存读写策略

        旁路缓存模式:服务端以数据库MySQL为主,Redis为辅,进行存储。

                写操作:先更新数据库,再删除缓存

                读操作:先从缓存中读取数据,读取成功则直接返回;读取失败,去数据库中读取,

                                读取完毕后写入缓存中。

        读写穿透:以Redis为主要的数据存储,依赖Cache服务负责将数据写入数据库中。

        异步缓存写入:只更新缓存,不利用Cache服务更新数据库,将要消费的消息放入消息队列中,然后异步批量的更新数据库。

2.缓存穿透、缓存击穿、和缓存雪崩

        缓存穿透:访问一个不存在数据,缓存中一定不会有这个数据,每次都会去数据库访问;

                解决:使用布隆过滤器,判断一个请求的数据是否存在,不存在,直接返回;

                           缓存空值,即使是一个不存在的数据,也用一个空值缓存起来;

        缓存击穿:热点数据缓存失效,使得很多的请求访问直接打到数据库上;

                解决:热点数据永不过时;

                           使用分布式锁,保证同一时间只有一个请求;

        缓存雪崩:大量缓存同时失效。

                解决:过期时间随机化;

                           加互斥锁;

                           设置多级缓存;

                           

你可能感兴趣的:(八股文,java)