Redis 架构是如何一步一步发展到今天的样子的?
2010 年 - 单体 Redis
Redis 1.0 于 2010 年发布,当时的架构非常简单。它通常用作业务应用程序的缓存。
不过,Redis 将数据存储在内存中。当我们重启 Redis 时,我们将丢失所有数据,流量将直接导向数据库。
2013 - 持久性
2013 年发布的 Redis 2.8 解决了之前的限制。Redis 引入了 RDB 内存快照来持久化数据。它还支持 AOF(Append-Only-File),即每条写入命令都写入一个 AOF 文件。
2013 - 复制
Redis 2.8 还增加了复制功能,以提高可用性。主实例处理实时读写请求,而副本同步主实例的数据。
2013 - 哨兵
Redis 2.8 引入了用于实时监控 Redis 实例的 Sentinel。它执行以下四项任务:监控、通知、自动故障转移和配置提供。
2015 - 集群
2015 年,Redis 3.0 发布。它增加了 Redis 集群。
Redis 集群是一种分布式数据库解决方案,通过分片管理数据。数据被分成 16384 个槽位(slots),每个节点负责一部分槽位。
展望未来
Redis 因其高性能和丰富的数据结构大大降低了开发业务应用程序的复杂性而广受欢迎。
- 2017 年,Redis 5.0 发布,增加了流(stream)数据类型。
- 2020 年,Redis 6.0 发布,在网络模块中引入了多线程 I/O。Redis 模型分为网络模块和主处理模块。在 Redis 单线程模型中,网络模块往往成为瓶颈高发地。