redis简介

什么是 Redis?

  1. redis是由Apache提供的高性能的非关系型数据库

redis的特点

  1. redis支持数据的持久化,支持将内存中的数据持久到磁盘上,这样可以避免重启或服务器宕机引起数据的丢失
  2. redis不仅仅支持key-value这样类型的数据,还支持list ,set ,zset,hash等数据结构的存储
  3. redis常常以集群的方式部署在节点上,采用的主从结构,支持数据的备份,即master-slave模式的数据备份

Redis 优势

  1. redis是基于内存存储数据的,所以有高性能的读写速度
  2. 有丰富的数据类型 - redis支持 strings lists hashes sets数据类型的草错
  3. 原子性 --redis所有的操作都是原子性的,即要么同时成功,要么同时失败
  4. 丰富的特性 - redis支持的发布订阅 ,通知 和key过期等特性

Redis 与其他 key-value 存储有什么不同?

  1. redis支持丰富的数据类型的数据的存储,如list ,set ,zset hash等
  2. redis支持数据的持久化,可以将数据持久化到磁盘上防止数据丢失
  3. redis提供原子性操作
  4. redis在内存中操作数据更加的简单,以及有更快的读写效率

Redis支持的数据类型

  1. 支持5种数据类型 string hash list set zset(sorted set 有序集合)

Redis 是单进程单线程的?

  1. redis是单进程单线程的,redis利用队列技术将并发访问编程串行访问,消除了传统数据库串行控制的开销

Redis 的持久化机制是什么?各自的优缺点?

  1. RDB 以数据集快照方式把持久化模式,记录redis数据库的所有键值对,在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件达到数据恢复

优点:

  • 只有一个dump.rdb方便持久化
  • 容灾性好,一个文件可以保存到安全的磁盘上
  • 能最大化,fork 子进程来完成写操作,让主进程继续处理命令,所以是 IO最大化。使用单独子进程来进行持久化,主进程不会进行任何 IO 操作,保证了 redis的高性能) 4.相对于数据集大时,比 AOF 的启动效率更高。

缺点:

  • 数据安全性会降低,RDB会隔一段时间持久化,在持久化的过程中如果redis出现故障,则会造成数据的丢失

AOF(Append-only file)持久化方式: 是指所有的命令行记录以 redis 命令请求协议的格式完全持久化存储)保存为 aof 文件。

优点

  • 数据安全,aof 持久化可以配置 appendfsync 属性,有 always,每进行一次
    命令操作就记录到 aof 文件中一次。
  • 通过 append 模式写文件,即使中途服务器宕机,可以通过 redis-check-aof
    工具解决数据一致性问题。
  • AOF 机制的 rewrite 模式。AOF 文件没被 rewrite 之前(文件过大时会对命令
    进行合并重写),可以删除其中的某些命令(比如误操作的 flushall))

缺点

  1. AOF文件比RDB文件大,且恢复速度慢
  2. 数据集大的时候,比rdb启动效率低

上一篇:Redis学习笔记


下一篇:REDIS持久化之RDB和AOF的区别