redis知识点总结

1.什么是Redis

redist是一个key-value形式的非关系型数据库。

2.redis的数据类型

string(字符串,整数,浮点)、list(列表)、set(无序集合)、zset(有序集合)、hash(哈希)

3.Redis有哪些优缺点

优点:

  1. 读写性能优异, Redis能读的速度是110000次/s,写的速度是81000次/s。
  2. 支持数据持久化,支持AOF和RDB两种持久化方式。
  3. 支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。
  4. 数据结构丰富,除了支持string类型的value外还支持hash、set、zset、list等数据结构。
  5. 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。

缺点:

  1. 数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
  2. Redis 不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。
  3. 主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性。
  4. Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费。

4.什么是redis的持久化

持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。

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

redis提供两种持久化机制RDB(默认)和AOF

RDB:是redis DataBase缩写快照

RDB是redis默认的持久化方式,按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb,通过配置文件中的save参数来定义快照的周期。

redis知识点总结_第1张图片

优点:

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

缺点:

  1. 数据安全性低,RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失,所以这种方式更适合数据要求不严谨的时候。

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

AOF持久化:将redis执行的每次命令记录到单独的日志文件中,当重启redis会重新将持久化的日志文件用来恢复数据。

当两种方式同时开启时,数据恢复reids会优先选择AOF恢复。

redis知识点总结_第2张图片

优点:

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

缺点:

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

RDBAOF对比

  1. AOF文件比RDB更新频率高,优先使用AOF还原数据。
  2. AOF比RDB更安全更大
  3. RDB性能比AOF好
  4. 如果两个都配了优先加载AOF

你可能感兴趣的:(数据库,redis,数据库,缓存)