互联网架构演变
随着互联网数据访问量的增长,系统架构经历了以下阶段的发展:
- 初期:简单的架构可以满足需求。
- 中期:引入缓存技术减轻数据库压力,并且不同的业务访问不同的数据库。
- 读写分离:实现数据库主从架构,主数据库负责写入,从数据库负责读取,通过主从复制保持数据同步。
- 进一步扩展:在读写分离基础上,当主库成为瓶颈时,引入分库分表、表分区等技术,最终形成MySQL集群。
Redis特性
- 高并发、高可扩展性和高性能:这些特性使得Redis非常适合现代互联网应用的需求。
- NoSQL数据库:Redis是一个运行在内存中的NoSQL数据库,这意味着它可以快速地存储和检索数据,无需预先定义数据结构。
- 应用场景:Redis常用于缓存、排行榜、计数器/限速器、好友关系管理、消息队列及Session共享等。
Redis与其它NoSQL数据库的比较
- Redis vs Memcache:两者都是内存数据库,但Redis提供了比Memcache更为丰富的数据结构,如列表、集合和哈希表,并且支持数据持久化。
- Redis vs MongoDB:Redis和MongoDB不是竞争对手,而是可以协同工作的工具。MongoDB更适合于复杂的查询和存储大量数据,而Redis适合用于缓存和加速数据访问。
分布式数据库CAP原理
- CAP理论:分布式系统需要在一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)三者之间做出选择。由于分区容错性在网络环境中不可避免,因此在设计分布式系统时通常需要在一致性和可用性之间做权衡。
Redis的复制原理
- 主从复制:Redis支持主从架构,从服务器可以接收来自用户的读请求,通过全量复制和增量复制两种方式与主服务器保持数据同步。
- 全量复制:当从服务器首次连接到主服务器,或断开连接后重新连接时,将执行一次全量复制。
- 增量复制:在全量复制之后,主服务器将只将更改的数据同步到从服务器。
Redis的哨兵模式
- 高可用性:Redis的哨兵模式可以监控主服务器的状态,并在主服务器出现故障时自动进行故障转移,选择一个新的从服务器作为主服务器。
Redis配置
- 配置文件:Redis的配置文件
redis.conf
中包含了Redis的各种配置项,包括是否作为守护进程运行、PID文件路径、监听端口等。