redis
redis是一种持久化存储方式,就是将内存中的数据写到磁盘中,防止服务器宕机造成数据的缺失
redis持久化存储有两种方式:RDB(默认),AOF
RDB跟AOF的比较:
1.aof文件比rdb更新频率高,优先使用aof还原数据。
2、aof比rdb更安全也更大
3、rdb性能比aof好
4、如果两个都配了优先加载AOF
redis非关系型数据库使用的是resp协议
redis集群架构中有一种Redis sentinel模式,Redis sentinel模式特性:
redis2.4之后的版本中已经集成redis sentinel模式
1.监控:sentinel会不断的监测你的主从服务器运行是否正常
2.提醒:当某个服务器出现故障的时候,sentinel会通过API向管理员或者应用程序发送通知
3.自动故障迁移:当一个服务器发生故障的时候,sebtinel会自动将请求发送到其他服务器
缓存穿透:一般的缓存查询,都是通过key查询value,如果value不存在,就会去后端系统查找(比如mysql),一些恶意的请求会故意请求不存在的key,以此造成后端系统的压力
解决方案:
1.将存在的key放在一个Bitmap中,以此进行过滤
缓存雪崩:当key集中在一个时间段失效或者服务器重启的时候,数据库查询会集中在一起,这样会对数据库造成压力
解决方案:
1.设置不同的失效时间
2.设置二级缓存,一个缓存设置为短期,一个为长期,当一个服务器失效的时候,可以访问另一个
3.缓存失效后,通过加锁或消息队列来控制都数据库写缓存的线程数量