此文章仅用来学习回顾,如若侵权,请联系
一、缓存管理机制
1、缓存数据库数据,减小数据库压力
redis数据在内存中,存取速度快。Redis是key-value形式的nosql数据库。可以快速的定位到所查找的key,并把其中的value取出来。把读数据库操作放到redis后,为数据库阻挡很多请求。
2、定期删除
设置数据超时时间后,redis会删除过期数据。由于全盘扫描过期文件太费时间,redis会随机删除。
3、惰性删除
有数据没有被随机删掉,等查询到该数据时,发现已过期,再被redis删除,属于被动删除。
4、内存淘汰策略
根据不同策略,内存过载后删除数据
5、缓存穿透
一个请求查询redis未找到数据后再次查询数据库,redis失去了缓存的意义,则为缓存穿透。
6、缓存击穿
指缓存中某个热点数据失效,此时有大量并发请求同时访问这个失效的数据,导致这些请求直接访问数据库,造成数据库压力过大,甚至导致数据库崩溃。通常是由于缓存中某个热点数据过期失效,同时有大量并发请求访问该数据
7、缓存雪崩
批量数据几乎同时过期,redis删除后,大量请求访问数据库,导致数据库压力剧增,则为缓存雪崩。
解决方案:过期时间均匀分布,热点数据永不过期
二、持久化存储机制
1、RDB(Redis DataBase)
RDB:redis备份默认方式。在指定的时间间隔内,定时将redis存储的数据生成快照,并存储到磁盘上。
缺点:不适合高频存储
2、AOF(Append Of File)
将 redis 执行过的所有写指令记录下来,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了
三、哨兵和高可用
1、主从复制
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。
2、哨兵
sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。
如果主节点挂掉,可以自动切换新的节点作为Master。
https://www.cnblogs.com/df1151112630/p/15730365.html