Study notes
09
16
哨兵机制:主库挂了,如何不间断服务? 哨兵机制:主库挂了,如何不间断服务?
上节课,我们学习了主从库集群模式。在这个模式下,如果从库发生故障了,客户端可以继续向主库或其他从库发送请求,进行相关的操作,但是如果主库发生故障了,那就直接会影响到从库的同步,因为从库没有相应的主库可以进行数据复制操作了。 而且,如果客户端
2024-09-16
15
数据同步:主从库如何实现数据一致? 数据同步:主从库如何实现数据一致?
前两节课,我们学习了 AOF 和 RDB,如果 Redis 发生了宕机,它们可以分别通过回放日志和重新读入 RDB 文件的方式恢复数据,从而保证尽量少丢失数据,提升可靠性。 不过,即使用了这两种方法,也依然存在服务不可用的问题。比如说,我们
2024-09-15
15
内存快照:宕机后,Redis如何实现快速恢复? 内存快照:宕机后,Redis如何实现快速恢复?
上节课,我们学习了 Redis 避免数据丢失的 AOF 方法。这个方法的好处,是每次执行只需要记录操作命令,需要持久化的数据量不大。一般而言,只要你采用的不是 always 的持久化策略,就不会对性能造成太大影响。 但是,也正因为记录的是操
2024-09-15
15
AOF日志:宕机了,Redis如何避免数据丢失? AOF日志:宕机了,Redis如何避免数据丢失?
如果有人问你:“你会把 Redis 用在什么业务场景下?” 我想你大概率会说:“我会把它当作缓存使用,因为它把后端数据库中的数据存储在内存中,然后直接从内存中读取数据,响应速度会非常快。”没错,这确实是 Redis 的一个普遍使用场景,但是
2024-09-15
15
高性能IO模型:为什么单线程Redis能那么快? 高性能IO模型:为什么单线程Redis能那么快?
今天,我们来探讨一个很多人都很关心的问题:“为什么单线程的 Redis 能那么快?” 首先,我要和你厘清一个事实,我们通常说,Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对
2024-09-15
15
数据结构:快速的Redis有哪些慢操作? 数据结构:快速的Redis有哪些慢操作?
一提到 Redis,我们的脑子里马上就会出现一个词:“快。”但是你有没有想过,Redis 的快,到底是快在哪里呢?实际上,这里有一个重要的表现:它接收到一个键值对操作后,能以微秒级别的速度找到数据,并快速完成操作。 数据库这么多,为啥 Re
2024-09-15
14
基本架构:一个键值数据库包含什么? 基本架构:一个键值数据库包含什么?
我们知道,Redis 是典型的键值数据库,所以今天,我准备手把手地带你构建一个简单的键值数据库。为啥要这么做呢? 还记得我在开篇词说过吗?Redis 本身比较复杂,如果我们一上来就直接研究一个个具体的技术点,比如“单线程”“缓存”等,虽然可
2024-09-14
14
自增id用完怎么办? 自增id用完怎么办?
MySQL里有很多自增的id,每个自增id都是定义了初始值,然后不停地往上加步长。虽然自然数是没有上限的,但是在计算机里,只要定义了表示这个数的字节长度,那它就有上限。比如,无符号整型(unsigned int)是4个字节,上限就是232-
2024-09-14
14
怎么最快地复制一张表? 怎么最快地复制一张表?
我在上一篇文章最后,给你留下的问题是怎么在两张表中拷贝数据。如果可以控制对源表的扫描行数和加锁范围很小的话,我们简单地使用insert … select 语句即可实现。 当然,为了避免对源表加读锁,更稳妥的方案是先将数据写到外部文本文件,然
2024-09-14
7 / 11