1、缓存雪崩
指的是部分缓存的key,设置了相同的过期时间,在还没有重新加载这部分缓存的时候,如果这时候有大量的请求访问时,从缓存里面查不到数据,请求就会转嫁到底层数据库上,过量的请求,会对数据库服务器的CPU和内存读写造成极大的压力,严重的情况下造成了数据库服务宕机。从而形成一系列连锁反应,造成整个系统崩溃。
2、缓存穿透
指的是原本数据库不存在的数据查询,从缓存查不到,在从数据库查询还是返回空。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透。
3、缓存击穿
是指一个key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。
4、缓存预热
系统上线后,把一些访问量大的数据直接加载到缓存系统。这样就可以避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!
5、单线程的redis为什么这么快
纯内存操作、单线程操作,避免了频繁的上下文切换、采用了非阻塞I/O多路复用机制
6、Memcache与Redis的区别都有哪些?
1)、存储方式
Memcache数据全部存在内存中,数据不能超过内存大小,断电后数据全部丢失。
Redis可以持久化数据,将数据备份到磁盘中;
2)、数据类型
Memcache只有字符串类型
Redis支持更为丰富的数据类型,包括list、string、set、zset、hash等。
3)、存储的值的大小不同
Memcache只能有最大1MB;
Redis最大可以存储512MB;
4)、访问效率
Redis读取比Memcache更快捷
5)、备份数据
Redis自带了数据备份功能;