Redis哨兵
此前,我们非常依赖主服务器,因为所有的写命令都首先会给主服务器,那如果主服务器死掉,其它从服务器该怎么办?顶替!选择一个从服务器来担任主服务器的职责。Redis 提供哨兵机制(哨兵其实是一个运行在特殊模式下的 Redis 进程,所以它也是一个节点),它会检测主节点是否存活,如果发现主节点挂掉,就会选举一个从节点切换为主节点,并且把新主节点的相关信息通知给从节点和客户端。总结就是主要负责三件事情:监控、选主、通知
Redis主从复制
之前介绍 Redis 持久化是针对单台主机,如果这台主机死掉,不能对外提供服务,那持久化策略也没有发挥的余地。为了避免这种情况,那就需要能够有多台 Redis 服务器,哪怕其中一台死掉,再选择一个允许正常的 Redis 服务器顶上,继续正常服务。但我们必须要保证数据的一致性,所以引出接下来介绍的主从复制
进程池和文件下载
结合学过的文件操作、网络通信、以及进程和线程的知识, 实现一个基本的文件下载服务器模型。尽管线程池才是最常用的,但先从进程池谈起
epoll的使用
彻底讲清楚epoll
select的使用
彻底讲清楚 select
冯·诺依曼体系结构
冯·诺依曼体系结构又名存储程序计算机,这里面其实暗含了两个概念,一个是“可编程”计算机,一个是“存储”计算机
数据库和缓存如何保持一致性?
先更新数据库,再删除缓存也是会出现数据不一致性的问题,但是在实际中,这个问题出现的概率并不高。因为缓存的写入通常要远远快于数据库的写入
HTTPS通信流程
简单来讲,非对称加密完成客户端对称加密的密钥交换,双方后续就用对称加密的方式进行通信
底层基于TCP协议的Socket通信流程
不是介绍接口,而是讲原理
缓存雪崩、缓存击穿和缓存穿透
Redis 缓存的数据来源于 MySQL数据库,前者作用于内存,后者作用于磁盘,内存访问比磁盘快很多。题目中的缓存失败情况从这两个数据库展开讨论
14567817