摘要: 10 | 第1~9讲课后思考题答案及常见问题答疑 第 1 讲 问题:和跟 Redis 相比,SimpleKV 还缺少什么? @曾轼麟、@Kaito 同学给出的答案都非常棒。他们从数据结构到功能扩展,从内存效率到 事务性,从高可用集群再到高可扩展集群,对 SimpleKV 和 Redis 进行了详细 阅读全文
posted @ 2022-04-07 17:32 CS408 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 我曾遇到过这么一个需求:要用 Redis 保存 5000 万个键值对,每个键值对大约是 512B, 为了能快速部署并对外提供服务,我们采用云主机来运行 Redis 实例,那么,该如何选择 云主机的内存容量呢? 我粗略地计算了一下,这些键值对所占的内存空间大约是 25GB(5000 万 *512B)。 阅读全文
posted @ 2022-04-07 15:58 CS408 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 上节课,我们学习了哨兵机制,它可以实现主从库的自动切换。通过部署多个实例,就形 成了一个哨兵集群。哨兵集群中的多个实例共同判断,可以降低对主库下线的误判率。 但是,我们还是要考虑一个问题:如果有哨兵实例在运行时发生了故障,主从库还能正常 切换吗? 实际上,一旦多个实例组成了哨兵集群,即使有哨兵实例出 阅读全文
posted @ 2022-04-07 15:42 CS408 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 上节课,我们学习了主从库集群模式。在这个模式下,如果从库发生故障了,客户端可以 继续向主库或其他从库发送请求,进行相关的操作,但是如果主库发生故障了,那就直接 会影响到从库的同步,因为从库没有相应的主库可以进行数据复制操作了。 而且,如果客户端发送的都是读操作请求,那还可以由从库继续提供服务,这在纯 阅读全文
posted @ 2022-04-07 15:06 CS408 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 06 | 数据同步:主从库如何实现数据一致? 前两节课,我们学习了 AOF 和 RDB,如果 Redis 发生了宕机,它们可以分别通过回放日 志和重新读入 RDB 文件的方式恢复数据,从而保证尽量少丢失数据,提升可靠性。 不过,即使用了这两种方法,也依然存在服务不可用的问题。比如说,我们在实际使用时 阅读全文
posted @ 2022-04-07 15:02 CS408 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 04 | AOF日志:宕机了,Redis如何避免数据丢失? AOF 日志是如何实现的? 说到日志,我们比较熟悉的是数据库的写前日志(Write Ahead Log, WAL),也就是 说,在实际写数据前,先把修改的数据记到日志文件中,以便故障时进行恢复。不过, AOF 日志正好相反,它是写后日志,“ 阅读全文
posted @ 2022-04-07 09:53 CS408 阅读(151) 评论(0) 推荐(0) 编辑