/assets/images/avatar.jpeg

Harry's Space

MySQL 和 NoSQL基础知识概述

MySQL

索引

  • B+Tree

    • 平衡树,查找树,所有叶子节点位于同一层

    • 进行查找时首先再根节点进行二分查找,找到一个key所在的指针,然后递归的在指针所指向的节点进行查找,直到查到叶子节点,然后在叶子节点二分查找,找出key所对应的data

数据库基础知识概述

事务

  • ACID

    • 原子性

    • 隔离性

    • 一致性

    • 持久性

      • 应对系统崩溃,可以用Redo Log恢复
  • AUTOCOMMIT:MySQL默认采用自动提交,不显示start transaction,每个查询都会被当成一个事务执行并自动提交

Redis 集群架构

单实例往往不能满足生产环境的需求,需要引入Redis集群,比较常见的Redis集群方案有主从复制、哨兵模式、官网的Redis Cluster,另外还有一些Proxy模式,各大厂商也有自己的方案。

Redis 热点 key 问题如何解决?

什么是热点key?

对于web应用来说,用户消费的数据远远大于生产的数据,大多人使用都只是进行浏览,少数的人才会进行评论。对于web服务来说,某些热门的内容,读请求的量级可能是非常大的,数据库无法支持这么高并发的请求,基本都会使用Redis集群做缓存,但是如果如果热点数据的请求量过大,导致热点key所在Redis节点无法支撑,这种情况就需要采用额外的措施解决。当然Redis的性能还是非常好的,大多数业务量级都可以撑住,除非业务体量很大。

Redis 基础知识概述

数据类型

STRING

  • 字符串、整数、浮点数

LIST

  • 列表

SET

  • 集合

ZSET

  • 有序集合

HASH

  • 哈希表

数据结构

字典

  • 链地址法解决冲突
  • rehash、渐进式rehash

跳跃表

  • 基于有序链表建多级索引

  • 相比红黑树的优点