全网最新、最全的 Redis 面试题

1. 什么是 redis?

Redis 是一个基于内存的高性能 key-value 数据库。

2. Reids 的特点

Redis 本质上是一个 Key-Value 类型的内存数据库,很像

memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。

因为是纯内存操作, Redis 的性能非常出色, 每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。

Redis 的出色之处不仅仅是性能, Redis 最大的魅力是支持保存多种数据结构,此外单个 value 的最大限制是 1GB,不像 memcached 只能保存1MB 的数据,因此 Redis 可以用来实现很多有用的功能。

 

比方说用他的 List 来做 FIFO 双向链表,实现一个轻量级的高性 能消息队列服务,用他的 Set 可以做高性能的 tag 系统等等。另外 Redis 也可以对存入的 Key-Value 设置 expire 时间,因此也可以被当作一 个功能加强版的 memcached 来用。

Redis 的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此 Redis 适合的场景主要局限在较小数据量的高性能操作和运算上。

3. 使用 redis 有哪些好处?

  1. 速度快,因为数据存在内存中,类似于 HashMap HashMap 的优势就是查找和操作的时间复杂度都是 O(1)
  2. 支持丰富数据类型, 支持 string list set sorted set hash
  3. 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
  4. 丰富的特性:可用于缓存,消息,按 key 设置过期时间,过期后将会自动删除
  5. memcached 所有的值均是简单的字符串, redis 作为其替代者, 支持更为丰富的数据类型
  6. redis 的速度比 memcached 快很多
  7. redis 可以持久化其数据
  8. 存储方式 Memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。 Redis 有部份存在硬盘上, 这样能保证数据的持久性。
  9. 数据支持类型 Memcache 对数据类型支持相对简单。 Redis 有复杂的数据类型。
  10. 使用底层模型不同 它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。 Redis 直接自己构建了 VM 机制 因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

4.redis 相比 memcached 有哪些优势?

  1. 存储方式 Memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。 Redis 有部份存在硬盘上, 这样能保证数据的持久性。
  2. 数据支持类型 Memcache 对数据类型支持相对简单。 Redis 有复杂的数据类型。
  3. 使用底层模型不同 它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。 Redis 直接自己构建了 VM 机制 因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

5.Memcache 与 Redis 的区别都有哪些?

  1. 存储方式 Memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。 Redis 有部份存在硬盘上, 这样能保证数据的持久性。
  2. 数据支持类型 Memcache 对数据类型支持相对简单。 Redis 有复杂的数据类型。
  3. 使用底层模型不同 它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。 Redis 直接自己构建了 VM 机制 因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

6.redis 常见性能问题和解决方案:

    1. Master 写内存快照, save 命令调度 rdbSave 函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以Master 最好不要写内存快照。
    2. Master AOF 持久化,如果不重写 AOF 文件,这个持久化方式对性能的影响是最小的,但是 AOF 文件会不断增大, AOF 文件过大会影响Master 重启的恢复速度。Master 最好不要做任何持久化工作, 包括内存快照和 AOF 日志文件,特别是不要启用内存快照做持久化,如果数据比较关键,某个 Slave 开启 AOF 备份数据,策略为每秒同步一次。
    3. Master 调用 BGREWRITEAOF 重写 AOF 文件, AOF 在重写的时候会占大量的 CPU 和内存资源,导致服务 load 过高,出现短暂服务暂停现象。
posted @ 2020-12-21 11:05  seeyoumeet  阅读(71)  评论(0编辑  收藏  举报