1. Redis概述
-
定义:Redis(Remote Dictionary Server)是一个高性能的远程字典服务,支持多种数据类型和缓存淘汰策略,并提供持久化能力。
-
架构:最初作为远程缓存服务,通过优化和扩展,发展成为一个强大的缓存服务。
2. 性能提升
-
本地缓存:将数据存储在内存中,减少磁盘I/O,提高查询性能。
-
远程缓存:多个服务实例共享一份缓存数据,避免内存浪费,并通过集中处理读写命令解决并发问题。
3. 数据类型与内存管理
-
支持的数据类型:除了字符串,还支持列表(list)、集合(set)、有序集合(zset)等。
-
内存过期策略:通过设置过期时间自动删除数据,控制内存使用。
-
缓存淘汰:在内存接近上限时,根据策略(如LRU)删除数据,保持服务高效运行。
4. 持久化
-
RDB(快照持久化):定期将内存数据全量保存到磁盘文件,类似于游戏存档。
-
AOF(追加文件持久化):每次写入操作时记录到文件缓存,并定期刷入磁盘,保证数据持久化。
5. 网络协议
- 自定义协议:基于TCP的简单协议,通过发送如
set key value
和get key
的命令进行数据读写。
6. 高级功能
-
插件扩展:如RedisJSON、RediSearch、RedisGraph等,提供JSON查询、全文搜索、图数据库等功能。
-
内存版本:提供内存版本的MongoDB、Elasticsearch、Neo4j、InfluxDB等数据库功能。
7. 扩展性与高可用
- 主从哨兵和集群模式:解决Redis的高可用和高扩展性问题,将在后续内容中讨论。
8. 总结
Redis是一个高性能的内存数据库,通过多种数据类型、缓存策略、持久化机制和网络协议优化,成为架构中提速的利器。其高级功能和插件扩展使其在多种场景下都能发挥重要作用。对于高可用和高扩展性的需求,Redis提供了主从哨兵和集群模式作为解决方案。
注:
1. 可参考b站up主的动画更好的理解:redis是什么?架构是怎么样的?怎么设计redis?_哔哩哔哩_bilibili
2. 具体教程如下:Redis 教程 | 菜鸟教程