Redis逻辑架构:
Redis采用单进程单线程模型,其逻辑架构主要包含以下几个部分:
1.网络层:处理客户端的连接、数据读写等操作。
2.命令解析器:负责解析客户端发送的命令并将其转化为相应的操作。
3.数据库:存储所有键值对以及其他辅助数据结构。
4.持久化层:根据配置和策略将内存中的数据定期或者实时地保存到磁盘上。
5.事务管理器:支持多条命令作为一个整体进行执行,保证事务的原子性。
6.订阅与发布系统:实现消息推送功能,可以通过发布订阅机制实现实时通知等功能。
Redis物理架构:
Redis在物理架构上采用了主从复制模式,其中一个节点为主节点,其他节点为从节点。主节点接收客户端请求,并将更新操作同步给从节点。从节点不允许直接修改数据,只能通过主节点同步数据更新。如果主节点出现故障,则从节点可以自动切换成主节点继续提供服务。
Redis逻辑原理:
Redis使用哈希表来存储键值对,在内存中开辟一块连续空间来存储所有哈希表元素。当哈希表需要扩容时,Redis会重新分配一块更大的内存空间,并将原有数据复制到新的空间中。在扩容期间,仍然可以继续读写操作。
Redis物理原理:
Redis使用单线程处理所有客户端请求,在内存中开辟一块连续空间来存储所有键值对。当内存不足时,Redis采用LRU算法淘汰最近最少使用的键值对。此外,Redis还支持持久化功能,可以将内存中的数据保存到磁盘上以实现数据备份和恢复等功能。