当前位置:网站首页>Redis学习笔记【四】完结

Redis学习笔记【四】完结

2022-08-11 05:31:00 爱吃西瓜爱吃肉

持久化之RDB操作(默认)

Redis是内存数据库,如果不将内存中的数据状态保存到磁盘中,那么一旦服务器进程退出,服务器中的数据库状态就会消失,所以Redis提供了持久化功能

dump.rdb是由Redis服务器自动生成的,默认每隔一段时间Redis服务器程序会自动对数据库做一次遍历,把内存快照写在此文件中,这个持久化机制叫做snapshot。如果服务器宕机,重新启动服务器就会加载dump.rdb将数据库状态恢复到上一次做快照时状态

Snapshot时间间隔和保存的文件路径、文件名都在conf配置文件中指定

触发机制:

1.如果配置文件中改为save 60 5 代表60秒执行5次操作就写入rdb

2. 执行flushall命令

3.退出Redis

恢复rdb文件:

将备份的rdb文件放在启动目录即可,redis启动时就会自动检查并恢复

优点:适合大规模的数据恢复,对数据完整性要求不高

缺点:需要时间间隔操作,如果redis突然宕机,最后一次修改数据就没有了。因为此过程是redis单独创建的子进程来进行持久化的,所以创建子进程时会占用一定的空间

持久化之AOF操作

手动开启:将appendonly改为yes

修复aof文件:如果恶意修改AOF文件Redis也会重启失败(配置信息加载失败)。使用redis-check-aof --fix appendonly.aof #修复appendonly.aof文件

会将错误的内容删除,但是正确的也会有一定丢失

AOF重写规则:默认就是文件的无限追加,文件会越来越大,配置文件 中可以设置文件的大小

 

优点:每一次修改都会同步,文件的完整性会更好,每秒同步一次最多会丢失一秒的数据

缺点:AOF文件大小远大于RDB文件,修复速度更慢。AOF运行效率也更慢 

Redis实现发布订阅者

 

psubscribe + 频道。。:订阅频道(可多个)

Publish + 频道+消息:给该频道发布消息

Subscribe+频道:订阅该频道

退订:punsubscribe(没指定则全部退订)、unsubscribe

Redis配置主从复制模式

主从复制是指将一台Redis服务器的数据复制到其他的Redis服务器。前者称为主节点,后者从节点,数据的复制只能是单向的。

作用:

1.实现备份;

2.当主节点出现故障时,可以由从节点提供服务,实现快速的故障恢复;

3.从节点读主节点读配合读写分离,分担服务器负载,提高服务器的并发量;

4.是高可用基石:哨兵和集群能够实施的基础

Redis集群之哨兵模式

当主服务器宕机后,利用哨兵模式来自动切换主机。哨兵是一个独立的进程,它会独立运行

缺点:不好在线扩容,实现哨兵模式的配置很麻烦

Redis缓存穿透、击穿和雪崩

缓存穿透前提:请求数据Redis和MySQL中都没有,然后不停的直接请求MySQL

 用户请求查询一个数据时redis如果没有,直接去请求MySQL,当很多用户同时请求并且都没命中就会都去请求数据库,此时会给数据库带来非常大的压力

解决办法:

1.布隆过滤器

 

是一种数据结构,对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃,从而避免对底层存储系统的查询压力

2.缓存空对象

 

当存储池查不到,即使是控制,我们也将其存储起来并且设置空气时间,之后再访问时直接从redis访问,保护了数据库。

但是也有缺点:意味着缓存需要更多的空间来存储更多的键,其中很多空值

Redis的缓存击穿

指一个非常热点的Key在不停的扛着大并发,当这个key失效时,一瞬间大量的请求冲到持久层数据库中

解决:

设置热点key永不过期,但是不合理

加互斥锁:

在查询持久层数据库时,保证了只有一个线程能够进行持久层数据查询,其他线程让它睡眠一定时间,等待前一个线程查询完回写到Redis缓存中,才能继续;

Redis缓存雪崩

在某个时间段,缓存的key大量集中过期,所有请求全部冲到持久层数据库中,导致数据库挂掉

案例:双十一零点抢购,这批商品集中放在缓存,设置失效时间为1小时,那么到了零点这批缓存全部失效,而大量的请求过来全部冲过缓存冲到持久层

解决:

1.Redis高可用

多设置几台redis,一台挂掉另一台继续工作

2.限流降级。

缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对
某个key只允许一个线程查询数据和写缓存,其他线程等待。

3.数据预热

正式部署前,先把可能的数据先访问一遍,大量的访问数据就会被加载到缓存中,设置不同的过期时间让缓存失效时间点尽量均匀

原网站

版权声明
本文为[爱吃西瓜爱吃肉]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_36149079/article/details/125854908