关于Redis的n种妙用,不仅仅是缓存
Redis 的耐久化机制有两种,第一种是快照(RDB),第二种是 AOF 日记。快照是一次全量备份,AOF 日记是持续的增量备份。快照是内存数据的二进制序列化情势,在存储上很是紧凑,而 AOF 日记记录的是内存数据修改的指令记录文本。AOF 日记在恒久的运行进程中会变的无比复杂,数据库重启时必要加载 AOF 日记举办指令重放,这个时刻就会无比漫长。以是必要按期举办 AOF 重写,给 AOF 日记举办瘦身。 RDB是通过Redis主历程fork子历程,让子历程执行磁盘 IO 操纵来举办 RDB 耐久化,AOF 日记存储的是 Redis 处事器的次序指令序列,AOF 日记只记录对内存举办修改的指令记录。即RDB记录的是数据,AOF记录的是指令 RDB和AOF到底该怎样选择?
缓存雪崩是什么? 假设有如下一个体系,岑岭期哀求为5000次/秒,4000次走了缓存,只有1000次落到了数据库上,数据库每秒1000的并发是一个正常的指标,完全可以正常事变,但假如缓存宕机了,每秒5000次的哀求会所有落到数据库上,数据库立马就死掉了,由于数据库一秒最多抗2000个哀求,假如DBA重启数据库,立马又会被新的哀求打死了,这就是缓存雪崩。 怎样办理缓存雪崩 事前:redis高可用,主从+哨兵,redis cluster,停止通盘瓦解 事中:当地ehcache缓存 + hystrix限流&降级,停止MySQL被打死 过后:redis耐久化,快速规复缓存数据 缓存穿透是什么? 若是客户端每秒发送5000个哀求,个中4000个为黑客的恶意进攻,即在数据库中也查不到。举个例子,用户id为正数,黑客结构的用户id为负数, 假如黑客每秒一向发送这4000个哀求,缓存就不起浸染,数据库也很快被打死。 怎样办理缓存穿透 查询不到的数据也放到缓存,value为空,如set -999 “” 总而言之,缓存雪崩就是缓存失效,哀叱责部所有打到数据库,数据库刹时被打死。缓存穿透就是查询了一个必然不存在的数据,而且从存储层查不到的数据没有写入缓存,这将导致这个不存在的数据每次哀求都要到存储层去查询,失去了缓存的意义。 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |