zoukankan      html  css  js  c++  java
  • 金九银十跳槽高峰,面试必备之 Redis + MongoDB 常问80道面试题

    前言

    有着“金九银十”之称的招聘旺季已经开启,跳槽高峰期也如约而至。

    本文为主要是 Redis + MongoDB 知识点的攻略,希望能帮助到大家。

    内容较多,大家准备好耐心和瓜子矿泉水。

    Redis

    redis 和 memcached 什么区别?为什么高并发下有时单线程的 redis 比多线程的

    memcached 效率要高?

    区别:

    1.mc 可缓存图片和视频。rd 支持除 k/v 更多的数据结构;

    2.rd 可以使用虚拟内存,rd 可持久化和 aof 灾难恢复,rd 通过主从支持数据备份;

    3.rd 可以做消息队列。

    原因:mc 多线程模型引入了缓存一致性和锁,加锁带来了性能损耗。

    redis 主从复制如何实现的?redis 的集群模式如何实现?redis 的 key 是如何寻址的?

    主从复制实现:主节点将自己内存中的数据做一份快照,将快照发给从节点,从节点将数

    据恢复到内存中。之后再每次增加新数据的时候,主节点以类似于 mysql 的二进制日志方

    式将语句发送给从节点,从节点拿到主节点发送过来的语句进行重放。

    分片方式:

    -客户端分片

    -基于代理的分片

    ● Twemproxy

    ● codis

    -路由查询分片

    ● Redis-cluster(本身提供了自动将数据分散到 Redis Cluster 不同节点的能力,整个数据集

    合的某个数据子集存储在哪个节点对于用户来说是透明的)

    redis-cluster 分片原理:Cluster 中有一个 16384 长度的槽(虚拟槽),编号分别为 0-16383。

    每个 Master 节点都会负责一部分的槽,当有某个 key 被映射到某个 Master 负责的槽,那

    么这个 Master 负责为这个 key 提供服务,至于哪个 Master 节点负责哪个槽,可以由用户

    指定,也可以在初始化的时候自动生成,只有 Master 才拥有槽的所有权。Master 节点维

    护着一个 16384/8 字节的位序列,Master 节点用 bit 来标识对于某个槽自己是否拥有。比

    如对于编号为 1 的槽,Master 只要判断序列的第二位(索引从 0 开始)是不是为 1 即可。

    这种结构很容易添加或者删除节点。比如如果我想新添加个节点 D, 我需要从节点 A、B、

    C 中得部分槽到 D 上。 (篇幅过大所以只列举几点,面试题+答案领取方式在文末)

    MongoDB

    你说的 NoSQL 数据库是什么意思?NoSQL 与 RDBMS 直接有什么区别?为什么要使用和不使用

    NoSQL 数据库?说一说 NoSQL 数据库的几个优点?

    NoSQL 是非关系型数据库,NoSQL = Not Only SQL。

    关系型数据库采用的结构化的数据,NoSQL 采用的是键值对的方式存储数据。

    在处理非结构化/半结构化的大数据时;在水平方向上进行扩展时;随时应对动态增加的数据项时可以优

    先考虑使用 NoSQL 数据库。

    在考虑数据库的成熟度;支持;分析和商业智能;管理及专业性等问题时,应优先考虑关系型数据库。

    NoSQL 数据库有哪些类型?

    NoSQL 数据库的类型

    例如:MongoDB, Cassandra, CouchDB, Hypertable, Redis, Riak, Neo4j, HBASE, Couchbase,

    MemcacheDB, RevenDB and Voldemort are the examples of NoSQL databases.详细阅读。

    MySQL 与 MongoDB 之间最基本的差别是什么?

    MySQL 和 MongoDB 两者都是免费开源的数据库。MySQL 和 MongoDB 有许多基本差别包括数据的表

    示(data representation),查询,关系,事务,schema 的设计和定义,标准化(normalization),速度

    和性能。

    通过比较 MySQL 和 MongoDB,实际上我们是在比较关系型和非关系型数据库,即数据存储结构不同。

    Redis+MongoDB 80题答案PDF

    金九银十跳槽高峰,面试必备之 Redis + MongoDB 常问80道面试题答案传送门

  • 相关阅读:
    网站迁移服务器后CPU、内存飙升,设置robots.txt 问题
    System.Web.Mvc 找到的程序集清单定义与程序集引用不匹配
    滑动窗口协议
    TCP拥塞控制
    计网常用协议
    TCP协议中的三次握手、四次挥手
    浏览网页的详细过程
    docker网络模式
    openstack网络
    查找算法
  • 原文地址:https://www.cnblogs.com/chengxuwang/p/11454258.html
Copyright © 2011-2022 走看看