1970-01-01

01 基本架构:一个键值数据库包含什么?我们知道,Redis 是典型的键值数据库,所以今天,我准备手把手地带你构建一个简单的键值数据库。为啥要这么做呢? 还记得我在开篇词说过吗?Redis 本身比较复杂,如果我们一上来就直接研究一个个具体的技术点,比...

1970-01-01

06 数据同步:主从库如何实现数据一致?前两节课,我们学习了 AOF 和 RDB,如果 Redis 发生了宕机,它们可以分别通过回放日志和重新读入 RDB 文件的方式恢复数据,从而保证尽量少丢失数据,提升可靠性。 不过,即使用了这两种方法,也依然存在...

1970-01-01

07 哨兵机制:主库挂了,如何不间断服务?上节课,我们学习了主从库集群模式。在这个模式下,如果从库发生故障了,客户端可以继续向主库或其他从库发送请求,进行相关的操作,但是如果主库发生故障了,那就直接会影响到从库的同步,因为从库没有相应的主库可以进行数...

1970-01-01

08 哨兵集群:哨兵挂了,主从库还能切换吗?上节课,我们学习了哨兵机制,它可以实现主从库的自动切换。通过部署多个实例,就形成了一个哨兵集群。哨兵集群中的多个实例共同判断,可以降低对主库下线的误判率。 但是,我们还是要考虑一个问题:如果有哨兵实例在运行...

1970-01-01

11 “万金油”的String,为什么不好用了?从今天开始,我们就要进入“实践篇”了。接下来,我们会用 5 节课的时间学习“数据结构”。我会介绍节省内存开销以及保存和统计海量数据的数据类型及其底层数据结构,还会围绕典型的应用场景(例如地址位置查询、时...

1970-01-01

13 GEO是什么?还可以定义新的数据类型吗?在【第 2 讲】中,我们学习了 Redis 的 5 大基本数据类型:String、List、Hash、Set 和 Sorted Set,它们可以满足大多数的数据存储需求,但是在面对海量数据统计时,它们的内...

1970-01-01

14 如何在Redis中保存时间序列数据?我们现在做互联网产品的时候,都有这么一个需求:记录用户在网站或者 App 上的点击行为数据,来分析用户行为。这里的数据一般包括用户 ID、行为类型(例如浏览、登录、下单等)、行为发生的时间戳: UserID,...

1970-01-01

15 消息队列的考验:Redis有哪些解决方案?现在的互联网应用基本上都是采用分布式系统架构进行设计的,而很多分布式系统必备的一个基础软件就是消息队列。 消息队列要能支持组件通信消息的快速读写,而 Redis 本身支持数据的高速访问,正好可以满足消息...

1970-01-01

16 异步机制:如何避免单线程模型的阻塞?Redis 之所以被广泛应用,很重要的一个原因就是它支持高性能访问。也正因为这样,我们必须要重视所有可能影响 Redis 性能的因素(例如命令操作、系统配置、关键机制、硬件配置等),不仅要知道具体的机制,尽可...

1970-01-01

19 波动的响应延迟:如何应对变慢的Redis?(下)上节课,我介绍了判断 Redis 变慢的两种方法,分别是响应延迟和基线性能。除此之外,我还给你分享了从 Redis 的自身命令操作层面排查和解决问题的两种方案。 但是,如果在排查时,你发现 Red...

18910111266