Redis基本概念

Redis入门实操
Redis集群实操

Redis介绍

Redis就是一个数据库;是和Oracle不一样的数据库;非关系数据库===NOSQL
NOSQL(NotOnlySQL)===>非关系型数据库

非关系型数据库的特点
1. 结构比较简单:key-value的方式存储数据、文档的方式存储数据
2. 在内存中存储数据===》弱化了事务的处理
3. 自动持久化===》可以自动把内存中的数据写入到磁盘中
4. 支持脚本语言
5. 支持集群环境

Redis是一个非关系型数据库;Redis的特点
1. key-values方式存储数据
2. 内存中存储数据
3. 自动持久化

Redis就是在内存中,以key-value的方式存储数据;并且可以自动持久化的一个非关系型数据库

Redis优点
Redis数据结构

Redis持久化机制

  • RDB:全本快照
    触发的时候把内存中所有的数据写入到硬盘 默认的磁盘文件是 dump.rdb

    触发方式:

    1. save触发方式:该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止(把原有数据全部覆盖替换,不可取)
    2. bgsave触发方式:执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求
    3. 自动触发:在redis.conf中配置 “save m n”。表示m秒内数据集存在n次修改时,自动触发bgsave

    save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
    save 300 10 #300秒内容如超过10个key被修改,则发起快照保存
    save 60 10000

    缺点:服务器故障的时候可能会丢失数据,进行全本快照持久化啊的时候可能会丢失数据

  • AOF:日志记录
    redis会将每一个收到的写命令都通过write函数追加到文件中。通俗的理解 就是日志记录。默认的磁盘文件appendonly.aof

    触发方式:

    1. 每修改同步always:同步持久化 每次发生数据变更会被立即记录到磁盘 性能较差但数据完整性比较好
    2. 每秒同步everysec:异步操作,每秒记录 如果一秒内宕机,有数据丢失
    3. 不同no:从不同步

    appendonly yes //启用aof持久化方式
    appendfsync always //每次收到写命令就立即强制写入磁盘,最慢的,
    但是保证完全的持久化,不推荐使用
    appendfsync everysec //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
    appendfsync no //完全依赖os,性能最好,持久化没保证

    缺点:AOF的文件大于RDB文件,恢复数据可能会有丢失

    开启日志重写:确定appendonly.aof文件中的命令都是对于恢复数据来说有意义的命令,根据内存中现有数据,生成对应的命令写入到磁盘文件中;把文件中原本的内容覆盖掉

no-appendfsync-on-rewrite yes //开启日志重写
auto-aof-rewrite-percentage 100 //aof日志重做时机
auto-aof-rewrite-min-size 64md //aof日志重做大小

Redis持久化机制
  • RDB和AOF如何选择
    两者同时开启最优
    不要仅仅使用 RDB,因为那样会导致你丢失很多数据

    也不要仅仅使用 AOF,因为那样有两个问题,第一,你通过 AOF 做冷备,没有 RDB 做冷备,来的恢复速度更快; 第二,RDB 每次简单粗暴生成数据快照,更加健壮,可以避免 AOF 这种复杂的备份和恢复机制的 bug。

    redis 支持同时开启开启两种持久化方式,我们可以综合使用 AOF 和 RDB 两种持久化机制,用 AOF 来保证数据不丢失,作为数据恢复的第一选择; 用 RDB 来做不同程度的冷备,在 AOF 文件都丢失或损坏不可用的时候,还可以使用 RDB 来进行快速的数据恢复。

RedisCluster集群

集群内置了16384个slot(哈希槽)并且把所有的物理节点映射到了这16384[0-16383]个slot上,或者说把这些slot均等的分配给了各个节点。当需要在Redis集群存放一个数据(key-value)时,redis会先对这个key进行crc16算法,然后得到一个结果。再把这个结果对16384进行求余,这个余数会对应[0-16383]其中一个槽,进而决定key-value存储到哪个节点中。所以一旦某个节点挂了,该节点对应的slot就无法使用,那么就会导致集群无法正常工作

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。