Redis是一个典型的一对多的服务程序,一个服务器可以和多个客户端建立网络连接,对于每个与服务器连接的客户端,服务器都为这些客户端连接了相应的redisClient结构,这个结构保存了客户端当前的状态信息,以及执行相关功能所需要的数据结构。
1. 客户端状态:struct redisClient
Redis服务器的clients属性是一个链表,这个链表保存了所有与服务器连接的客户端的状态结构,查找某个指定的客户端可以通过遍历clients链表来完成。
struct redisServer {
// ......
list *clients; // 一个链表,保存了所有客户端状态
// ......
};
客户端状态redisClient的数据结构定义如下: