mynotes/Redis笔记/Redis笔记.md
2020-08-18 09:49:09 +08:00

3.6 KiB
Raw Permalink Blame History

edis笔记

Redis背景

  1. 90年代的访问量不大的网站一个MySQL数据库就能轻松搞定它的框架为

    DAL是数据访问层的意思

    1544769256958

  2. 在MySQL的前边挡了一个缓存层将重复读写的数据放入缓存层减轻MySQL的压力MySQL的弱点在于大量的重复读写数据量一大就会出现性能跟不上。所以出现了 Memcached框架为 1544769498817

  3. Memcached 只能够减少MySQL的读取压力这样的结构还是不能满足性能要求读和写都集中在一台数据库服务器中使得MySQL数据库不堪重负所以就出现了 “主从复制,读写分离” 的模式,被称为 master-slave 模式,框架为:1544770915304

  4. MySQL集群将与业务高活跃度的数据放在一个库中冷数据放在其他库中这样就生成MySQL集群。

    • 在Memcached的高速缓存MySQL的主从复制读写分离的基础之上这时MySQL主库的写压力开始出现瓶颈而数据量的持续猛增由于MyISAM使用表锁TODOMyISAM引擎和表锁、行锁什么意思在高并发下会出现严重的锁问题大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。
    • 同时开始流行使用分表分库来缓解写压力和数据增长的扩展问题。这个时候分表分库成了一个热门技术是面试的热门问题也是业界讨论的热门技术问题。也就在这个时候MySQL推出了还不太稳定的表分区这也给技术实力一般的公司带来了希望。虽然MySQL推出了MySQL Cluster集群但性能也不能很好满足互联网的要求只是在高可靠性上提供了非常大的保证。1544771599159
  5. 现在的服务器: 1544772788978

  6. 为什么使用 Nosql 服务器?

    自从GoogleFacebook 等这样的公司兴起,数据量指数级增长,数据复杂度也不断地增长,传统的关系型数据库已经不适应这种高复杂度的应用场景,所以出现了 Nosql 数据库。

Redis的原理

  1. 什么是 Nosql ?

    Nosql = not only SQL ;

  2. 谈谈你对Redis的理解。从这三方面来说KV CachePersistence(持久化)

Redis面试题

  1. Redis如何扩容
    • Redis是单进程 对Redis的访问分为写和读类似生产者和消费者发现写的少读的相对多些这就可以将读写分离写的往主的写读的从备的服务器读遇到的情况恰好是读和写是两个服务做到读写分离通过改下配置信息就可以很简单的做到这样分散了主Redis的压力
    • 搭建集群,与上面方法结合使用。
  2. 为何Redis读写速度比MySQL快Redis存储结构相对简单而且存储的位置是在内存中。
  3. 为什么Redis称为非关系型MySQL称为关系型数据库
    • 关系模型指的就是二维表格,关系型数据库就是由二维表格和表格之间的关系组成的数据组织;
    • 非关系型则更轻量级,存储的数据结构更加简单,而且不固定;
    • 关系型数据库使用起来容易理解,能够存储更加复杂的数据;
    • 非关系数据库性能高,支持高并发读写;
  4. Redis连接池
    • 节省临时获取Redis链接的时间提高效率
    • 通过定义 redis.pool 对象实现。
  5. Redis缓冲池
  6. Redis存储的数据结构
    • string
    • hash
    • 集合
    • 链表
  7. 使用Redis排序

redis面试https://juejin.im/post/6844903592998993928