「Python 面试」第六次更新

1.说一说 Redis 是什么

Redis 是一种「Key-Value」的内存型、非关系型数据库,属于 NoSQL 的一种。python

Redis 的读写速度特别快,特别适合读写频繁的场景。git

Redis 支持主从复制,支持数据持久化。github

2.知道 Redis 有哪些经常使用数据类型吗

  • String
  • List
  • Hash
  • Set
  • Zset

3.说一下 Redis 用来作什么

  • 利用 String,能够很容易实现「计数器」功能。
  • 利用 List ,能够实现「粉丝列表」功能。
  • 利用 Hash,能够实现「浏览记录」功能。
  • 利用 Set 的并集、合集特性,能够实现「共同好友」功能。
  • 利用 Zset 的排序特性,能够实现「排行榜」功能。
  • 因为 Redis 的高速读写特性,能够充当「缓存」。
  • 充当「消息队列」,如 Celery 中就是用 Redis 充当中间人,生产者和消费者都是向 Redis 中发布任务和接受任务。

4.说一下 Redis 是怎样将数据持久化的

  • RDB

    为某一时刻下的 Redis 数据库里的内容拍一张照片(快照),并将该照片写进磁盘中,实现数据持久化。面试

    当数据库崩溃时,会丢失最后一次快照的内容。数据库

    若是数据库内容过大,那么生成快照时间会很长。缓存

  • AOF

    经过写命令,将数据追加到(Append Only File)文件末尾,实现数据持久化。服务器

    可是使用 AOF,须要解决同步问题。微信

    由于文件的写入不会立马执行,而是先将写入的内容放置「缓存区」,等待操做系统决定什么时候将缓存区的内容写入磁盘。网络

    Redis 拥有三种同步策略:Always、Everysec、No。多线程

    绝大多数状况下都是使用第二种策略,每隔一秒钟同步一次,这样就算数据库崩溃也只会损失一秒钟的数据。

    而其余两种策略,要么对数据库的压力过大,过多下降数据库的性能,要么具备丢失数据量过大的风险。

5.了解 Redis 主从复制吗

使用slaveof host port设置主从服务器。

Redis 的主从服务器有点像树结构,从服务器只能有一个主服务器。

Redis 不支持「主-主复制」。

Redis 主从复制经过利用 RDB 快照持久化的特性,将某一时刻下主服务器的内容生成快照,而后发送给从服务器,并利用缓存区保存在这期间里进行的「写命令」,等待快照发送完毕以后,再将写命令发送给从服务器。

从服务器在接收到快照以后,会将自身的数据所有丢弃,载入快照里的数据,载入完毕以后,再执行主服务器的写命令。

6. 说一下 Redis 和 Memcache 的区别

Redis Memcache
支持 String、List、Hash、Set、Zset 只支持 String
支持数据持久化 不支持
支持事务 不支持
支持主从复制 不支持
支持分布式 不支持
支持将数据交换到磁盘中 不支持
单进程、单线程 IO 多路复用 多线程、非阻塞 IO

总结为一点,只用获得 Redis 里的 String 类型存储数据时,使用 Memcache。

除此以外,使用 Redis。

7. 了解 Redis 是怎样保证热数据的吗

Redis 是内存型的数据库,能够设置最大内存,当内存不够时,会使用「数据淘汰策略」,删除部分数据。

可是并非针对 Redis 里全部的数据,而是抽样选取小部分「数据集」。

策略 描述
Volatile-LRU 从设置了过时时间的「数据集」中,删除最近、最少使用的数据集
Volatile-TTL 从设置了过时时间的「数据集」中,删除即将要过时的数据。
Volatile-Random 从设置了过时时间的「数据集」中,随机删除数据。
Always-LRU 从「数据集」中删除最近、最少使用的数据。
AllKeys-Random 从「数据集」中随机删除数据。
Noeviction 禁止删除数据。

当 Redis 做为缓存使用时,为了保证缓存数据都是「热数据」,能够将 Redis 的最大内存设置为缓存的大小,并使用 Always-LRU 策略。将最近最少使用的数据舍弃,保证缓存里热数据的「高命中率」。


至此,有关「数据库」知识点的面试题就已告一段落,下次更新「网络通讯方面」面试题。

全部内容均已上传至「GitHub」仓库,欢迎你们点击原文查阅。

欢迎你们关注我的微信公众号「PythonDeveloper」,全部内容第一时间更新于公众号

全部内容均为本人一点一点敲出来的,不免会有错字、语句不通顺的地方,欢迎你们指正。

因本人水平有限,文章内容不免会有出错、遗漏,欢迎你们评论指出,一块儿进步。

相关文章
相关标签/搜索