redis缓存处理高并发
redis的处理高并发的本质
redis处理高并发的本质是利用缓存
磁盘和内存的理解
磁盘的访问速度是以毫秒为单位的,会按照扇区挨个扫描,耗费时间长
内存的访问速度是以纳秒为单位的,内存空间小,访问时间快
redis是储存在内存中的非关系型数据库,以K-V值保存,访问速度快,每秒可以处理很多的访问量,来解决一定的并发问题。再通过使用redis的锁机制来处理访问中容易出现的缓存问题(缓存穿透,缓存雪崩,缓存击穿),保证高并发下的数据完整性
缓存穿透:查询一个一定不存在的数据,数据库一定不存在,查询返回空,缓存不会写入,会被利用不存在的数据对数据库连续访问,造成数据库压力增大崩溃
解决:将查询出的null值,在缓存中写入,设置过期时间
缓存雪崩:缓存被同时查询的数据有同样的过期时间,大量的查询同时到达数据库,导致数据库压力突然增大,造成数据库崩溃
解决:降低过期时间重复率,可以使用随机数
缓存击穿:一个被高次数访问的数据,刚好在访问到来前过期,导致访问全部进入数据库
解决:使用锁机制