AiL598

redis数据库

一、简介

  redis是NoSQL数据库中应用较为广泛的非关系型内存数据库,他的内部是一个key--value的存储系统,但是他支持的存储类型相对来说是比较多的。eg:字符串、集合、列表、哈希类型。redis是一个基于内存运行并且支持持久化的非关系型数据库。

二、特点

  1. 存储速度快,因为数据存储在内存中  

  2. 支持的存储类型比较多。eg:字符串、集合、列表、哈希类型

  3. 自身支持持久化

  4. 本身自带高可用架构,高可用架构配置方便

三、高可用架构---->>主从、哨兵模式(sentinel)

  1.主从模式

  优点:为了缓存redis主服务器的读写压力,redis自身支持主从复制和读写分离的架构,redis主从支持一主多从、级联架构。

  缺点:存在单点故障

    1)主从同步过程---->>全量同步(发生在主从同步建立起来的初期,从服务器需要获取主服务器的所有数据)、增量同步(发生在生产环境中,从服务器需要和主服务器保持数据的一致性)

    ①当从服务器连接主服务器时,从服务器会向主服务器发送一条SYNC;

    ②当主服务器接收到这个SYNC命令时,会触发主服务器去执行一条BGSAVE命令,生成RDB文件(后面会讲解RDB文件的作用);在执行这个命令的同时,主服务器会把此后所有写的命令全部记录在缓冲区当中;

    ③主服务器BGSAVE命令执行完毕之后,会把生成的RDB文件发送给所有的从服务器,并且此期间,还会一直在缓冲区中记录所有的写命令

    ④从服务器接收到RDB文件,会把所有的旧数据全部都丢掉;同步RDB文件的数据;

    ⑤主服务器发送RDB文件完之后,会把缓冲区中的命令发送给所有从服务器;

    ⑥从服务器加载完RDB文件之后,会把缓冲区中的命令也同步到数据库里。

  2.哨兵模式(sentinel)--->>sentinel系统会监视1个或者多个redis master服务,以及这些master的所有的从服务;当某个master下线时,自动将master下的某一个从服务器提升到master继续处理请求

  优点:解决了主从复制的单点问题

  特点:

    ①主服务器下线时,会从从服务器里面随机挑选出一个提升为主服务器

    ②已下线的主服务器的从都改主服务器为新上任的主服务器

    ③如果旧的主服务器重新上线,那么他会担任新主服务器的从服务器

四、持久化

  种类:AOF、RDB(快照)

  原因:由于redis是缓存型数据,数据是存储在内存当中的,如果不做任何操作,那么服务器重新启动时候,内存中所有的数据都会清空,数据则会丢失,但是redis本身是支持数据持久化的!!!!

    1. AOF--->>AOF持久化会记录服务器所有写的操作命令,并在服务器重新启动的时候,通过重新执行这些命令来还原数据,AOF文件中所有的命令是以redis协议来保存的,并且是追加的,文件是越来越大,但是不会超过实际数据的大小

    2. RDB--->>RDB持久化会在一定的时间内或者一定的条件下生成RDB文件,也就是快照文件,当服务器重新启动,首先会加载这个RDB文件。

    3. AOF、RDB是可以同时使用的,但是redis优先加载AOF文件来还原数据,因为AOF保存的比RDB保存的数据比较完整

    4. 如果不开启持久化,redis是可以正常运行的,但是重启之后,数据就会丢失。

  恢复速度---->>RDB比AOF快。具体使用则是根据不同生产环境,不同需求采用,同时还需要配合每种的持久化的策略。

五、应用场景

  1. 读写量比较大的网站页面,把页面内容缓存到内存中,加快访问

 

  

    

相关文章: