# Redis

Redis 是一种 NoSQL.

# 多路复用机制

在 Redis 中,其对外提供键值对存储服务的主要流程,例如:网络 IO 和 键值对读写是由一个线程完成的。所以我们理解为 Redis 具有单线程高性能。但它在持久化、异步删除和集群数据同步等操作时是由其他线程执行的。

Redis 在只运行单线程的情况下,允许内核中同时存在多个监听套接字和已连接套接字。这样,内核就会持续监听这些套接字上的连接请求和数据请求,只要有请求到达就交给 Redis 线程处理。
当请求到达时,多路复用机制提供了基于事件的回调机制,即针对不同事件发生,调用相应的处理函数。事件会被放进事件队列中,Redis 单线程对事件队列进行处理。这样即可实现 Redis 无需一直轮询是否有请求实际发生,避免造成 CPU 资源浪费。

# 参考文献或资料

[1] 蒋德钧.Redis 核心技术与实战 (opens new window). 2020