3-redis-概述

Redis

简介

C语言编写的,开源的key-value数据库
网络请求模块单线程,其余应该多线程;NIO

特点

  • 非关系型数据库
  • 5种不同类型的值
  • 持久化(快照/AOF)
  • 复制特性(扩展读性能)
  • 客户端分片(扩展写性能)

数据类型

3-redis-概述_第1张图片
image.png

持久化

  • RDB(Redis Database)
    • 指定时间间隔内,将内存中的数据集快照写入磁盘;fork一个子进程,先将数据集写入临时文件,写入成功后替换之前的文件


      3-redis-概述_第2张图片
      redis-001.jpg
    • 优点
      • 整个数据库只有1个文件,备份恢复时转移方便
      • 服务进程只需要fork子进程,不要IO等操作,性能最大化
      • 数据集很大时,启动效率更高
    • 缺点
      • 持久化前出现宕机,会有数据丢失
      • 数据集很大时,持久化子进程会拖慢服务器
    • 持久化配置(6379.conf)
      • save 900 1 #900秒后,若至少1个key变化,则dump快照
      • save 300 10 #300秒后,若至少10个key变化,则dump快照
      • save 60 10000 #60秒后,若至少10000个key变化,则dump快照

  • AOF(Append-Only File)
    • 以日志形式记录服务器所处理的每一个写、删除操作,以文本方式记录


      redis-002.jpg
    • 优点
      • 数据安全性高(3种同步策略:没修改同步;每秒同步;不同步)
      • append模式写入日志,不影响之前;即使本次写入中宕机,依旧可以靠redis-check-aof解决数据一致性问题
      • rewrite机制
    • 缺点
      • 相同数据集下,AOF文件大于RDB文件
      • 无同步下效率等同RDB(此时没有持久化);每秒同步效率相对较高
    • 持久化配置
      • appendfsync always #每次有数据修改发生时都会写入AOF
      • appendfsync everysec #每秒同步一次,缺省策略
      • appendfsync no #从不同步,高效但数据不会持久化

你可能感兴趣的:(3-redis-概述)