在实际应用 Redis 过程中,如果将 Redis 作为数据库的缓存,经常会遇到这几个问题:缓存雪崩、缓存击穿、缓存穿透等。 缓存雪崩 缓存雪崩指的是,大量的应用无法在 Re...
在实际应用 Redis 过程中,如果将 Redis 作为数据库的缓存,经常会遇到这几个问题:缓存雪崩、缓存击穿、缓存穿透等。 缓存雪崩 缓存雪崩指的是,大量的应用无法在 Re...
之前提到 Redis 有主从库集群机制,以减轻主库的请求压力,实现 Redis 的高可用性。 并且,我们已经知道,请求的写操作只会在主库上执行,然后主库再同步到各个从库上。 ...
之前提到过,Redis 具有高可靠性,除了数据少丢失,这里还有一层含义,就是 服务尽量少中断。之前提到的 AOF日志和 RDB快照,都是为了实现数据的持久化。 而本文要探讨的...
考虑这样一个场景,当Redis发生异常重启时,Redis 的数据都是存在内存中的,这时该怎么找回来?实际上,Redis 的持久化主要有两大机制实现 —— AOF日志 和 RD...
关于 Redis 为什么这么快,除了之前提到的,数据存储在内存、底层数据结构高效以外,还有什么其他原因呢?我们都知道,Redis 是单线程高性能的。但是为什么 Redis 在...
Redis 能以微妙级别的速度,根据 key 找到 value。Redis 为什么能这么快呢? 当然,首先是因为 Redis 将数据都存在了内存中,内存的读取速度肯定是比磁盘...
索引是什么? 索引就是为了提高查询效率,类似于书的目录的东西。 索引的常见模型 索引的实现方式有很多种,这里主要说明三种:哈希表、有序数组和搜索树 哈希表哈希表就是一种 ke...
提到事务的,首先会想到事务的 ACID (原子性、一致性、隔离性、持久性)。原子性:事务被视为不可分割的最小单位,只会有成功或失败两个状态,不会有中间态。(通过InnoDB的...
一条查询语句的执行过程,一般是经过 连接器、分析器、优化器、执行器,最后到达存储引擎。 那么对于一条 更新的 MySQL 语句,执行流程又是怎样的呢? 首先可以肯定的是,以上...
当输入一条 MySQL 语句时,这条语句是如何被执行的? 需要经过 MySQL 哪些部分,才能将执行结果取出? 本文章简单记录下,MySQL 语句的执行过程,并以此了解 My...
由上一篇可以了解到,索引分为主键索引(聚簇索引)和 非主键索引(二级索引),那么如何有效地利用这些索引呢? 先考虑这么一个表结构: 可以看到,表 T 中,ID为主键索引,k为...
MySQL 为什么要设计锁? 当多个请求并发时,数据库需要合理地控制资源的访问规则,而锁就是用于实现这些访问规则的重要数据结构。 根据加锁的范围,MySQL的锁大致可以分为:...
随着人们网络安全意识的提高,人们对信息的安全传输越来越重视。各大公司也逐步将网站升级成 HTTPS。那么,相较于HTTP,HTTPS是怎么保证信息的安全传输的? 此文介绍了 ...
C++ 编译的程序占用内存: 栈区:执行函数时,函数内局部变量的存储单元在栈上创建,变量的声明周期结束后,这些内存单元会自动被释放。栈内存分配运算内置于处理器的指令集,效率高...
一、临时对象的概念 二、临时对象的产生与避免 一、临时对象的概念 临时对象是 在源码中不可见的,是栈上的、没有名字的对象。与函数内定义的临时对象有根本差别。 临时对象在源码中...
引用类型 引用:引用就是声明具名变量,也即是 对象 或 函数 的别名。 引用必须被初始化为指代 一个有效的对象或函数,T 类型的对象、T 类型的函数 或 可隐式转换为 T 类...
一、值类别(左值、纯右值、亡值) 二、std::move 一、值类别 表达式 何谓表达式?由运算符和运算对象构成的计算式。字面量、变量、函数返回值都是表达式。表达式返回的结果...
一、模板模板参数 一、模板模板参数 考虑在类模板中,有成员变量 : vector<T> myt; vector 实际上是一个类模板,现在考虑,把类似vector, list ...