Redis-的小知识

本文详细介绍了Redis的数据持久化策略,包括RDB和AOF的优缺点及应用场景。接着阐述了Redis的集群解决方案,如主从同步、哨兵模式和分片集群,重点解析了主从复制的全量和增量同步过程。讨论了Redis的并发高可用性,缓存穿透、击穿和雪崩问题及其解决方案,并分析了Redis的数据淘汰策略和事务特性。最后,解释了Redis单线程高效执行的原因。
摘要由CSDN通过智能技术生成

1.Redis数据持久化

Redis有两种数据持久化策略

RDB:

        定期将Redis中生成的数据生成快照同步到磁盘,磁盘上保存的就是Redis的快照

        优点:数据文件相比AOP较小 ,使用RDB数据恢复较快

        缺点:数据容易丢失,比较耗时

AOF:

        将Redis中所执行过的命令都记录下来,下次重启Redis直接执行命令就可以

        优点 :数据丢失的风险降低

        缺点:数据文件相比较RDB较大,数据恢复较慢

在项目中持久配置是如何选择的:

             RDB + AOF

2.1 Redis的集群

在Redis中 提供集群的方案共有三种:

        1.主从同步 :

               1).保证高可用

               2).实现故障转移需要手动调节

               3).无法实现海量数据存储

        2. 哨兵模式:

                1).保证高可用

                2).实现故障转移自动调节

                3).无法实现海量数据存储

        3.分片集群

                1).保证高可用

                2).实现故障转移自动调节

                3).可以实现海量数据存储

2.2 什么是Redis的主从复制

主从第一次同步:全量同步         

         第一阶段:全量同步流程        

        1). 从节点执行replicaof命令,发送自己的replid 和 offset 到主节点

        2).主节点判断replid是否一致

        3).如果不一致说明是第一次连接,需要做全量同步,返回自己的replid和offset到从节点

         4).主节点执行bgsave命令,生成RDB文件

         5).主节点发送RDB文件

         6).从节点清除本地的数据,加载RDB文件中的数据

         7).在同步期间,主节点收到的新命令写入到缓冲区【repl_buffer】中

         8). 从节点接收到的缓冲数据后写入本地,并记录最新数据对应的offset

         9).后期采用增量同步

后期数据变化后,则执行增量同步

增量同步:

        1.主节点会不断吧自己接收到的命令记录在repl_baklog中,并修改offset

        2.从节点向主节点发送psync命令,发送自己的offset和replid

        3.主节点判断replid和offset与从节点是否一致

        4.如果replid一致,说明是增量同步,然后判断offset是否一致

        5.如果从节点offset小于主节点offset,并且在repl_baklog中能找到对应数据则将offset直接相差的数据发送到从节点

        6.从节点接收到数据后写入本地,修改自己的offset与主节点一致

增量同步的风险:

repl_baklog文件大小有限,写满后会覆盖最早的数据,如果slave断开的时间过长,会导致没有备份的数据被覆盖,此时就需要做全量同步了(repl_baklog可以在配置文件中修改存储大小)

3.说说项目中使用Redis是集群还是单点?那些集群?Redis又是怎么部署的

一般部分服务做缓存的Redis直接做主从(1主1从)加哨兵就可以了,单节点不超过10G内存,如果Redis内存不足则可以给不同服务分配独立的Redis主从节点,尽量不去做分片集群

原因:

        1.维护起来麻烦

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值