摘要: 前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时, 阅读全文
posted @ 2020-09-27 14:33 Ethan_x 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 一、什么是缓存雪崩 缓存雪崩就是指缓存由于某些原因(比如 宕机、cache服务挂了或者不响应)整体crash掉了,导致大量请求到达后端数据库,从而导致数据库崩溃,整个系统崩溃,发生灾难。 下面的就是一个雪崩的简单过程: 1、redis集群彻底崩溃 2、缓存服务大量对redis的请求hang住,占用资 阅读全文
posted @ 2020-09-27 14:31 Ethan_x 阅读(612) 评论(0) 推荐(0) 编辑
摘要: 1、 Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等。 2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。 3、虚拟内存–Redis当物理内存用完时,可以将一些很久没 阅读全文
posted @ 2020-09-27 14:30 Ethan_x 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 一、什么是MySQL集群MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。数据更新使用读已提交隔离级别(read-committedisolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phasedcommit) 阅读全文
posted @ 2020-09-27 14:23 Ethan_x 阅读(752) 评论(0) 推荐(0) 编辑
摘要: 概述 什么是Redis? Redis 是一个使用 C 语言写成的,开源的高性能key-value非关系缓存数据库。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。Redis的数据都 阅读全文
posted @ 2020-09-27 14:21 Ethan_x 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 数据库系统与文件系统最大的区别在于数据库能保证操作的原子性,一个操作要么不做要么都做,即使在数据库宕机的情况下,也不会出现操作一半的情况,这个就需要数据库的日志和一套完善的崩溃恢复机制来保证。下面简单介绍一下InnoDB的崩溃恢复流程。 相关概念 lsn: 可以理解为数据库从创建以来产生的redo日 阅读全文
posted @ 2020-09-26 20:20 Ethan_x 阅读(1004) 评论(0) 推荐(0) 编辑
摘要: 1.什么是事务? 事务是对数据库中一系列操作进行统一的回滚或者提交的操作,主要用来保证数据的完整性和一致性。 2.事务四大特性(ACID)原子性、一致性、隔离性、持久性? 原子性(Atomicity):原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用 阅读全文
posted @ 2020-09-26 20:17 Ethan_x 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序是: 1.执行where xx对全表数据做筛选,返回第1个结果集。 2.针对第1个结果集使用group by分组,返回第2个结果集。 3.针对第2个结果集中的每1组数据执行select xx, 阅读全文
posted @ 2020-09-26 20:16 Ethan_x 阅读(1760) 评论(0) 推荐(0) 编辑
摘要: 1.drop与truncate与delete功能与特点 01.Drop的特点Drop table除了在数据库层面删除表,还会在系统层面删除xxx.ibd,xxx.frm(InnoDB表)或 xxx.MYD,xxx.MYI,xxx.frm (MyISAM)等文件;drop table if exist 阅读全文
posted @ 2020-09-26 20:12 Ethan_x 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这 阅读全文
posted @ 2020-09-26 20:10 Ethan_x 阅读(7524) 评论(0) 推荐(0) 编辑