1.Redis性能为什么快
答:①Redis是基于内存②另外Redis的线程模型是IO非阻塞多路复用③Redis是单线程的,避免了上下文的切换
2.缓存雪崩解决方案
可以参考上面的这张图。首先保证redis的高可用,最好建立一个ehcache去保证如果缓存主备全部宕机的情况,另外可以做限流操作(这里的话可以用熔断器机制hystrix)只循序3分之1的线程去请求数据库,剩余线程返回一个默认的错误,请重试。
3.缓存穿透解决方案
这种情况一般就是黑客攻击,简单粗暴一点的话就直接建议将没有查到的key保存一个unknown值set进redis中(目前没查到什么好办法)
4.如何保证与双写数据库的一致性
读的时候先读缓存,缓存没有,读数据库然后写入缓存;更新操作时,先更新数据库,同时删除缓存