baseball,
console game,
musical&classical&rock,
LEGO,
programmer.

Redis-客户端

客户端在服务器存在一个结构,叫redisClinet(redis.h/redisClient 客户端状态),保存客户端当前的状态信息,和数据结构;所有连接的客户端组成一个clients链表;

1.客户端通用属性

typedef struct redisClient{
//...
  int fd; //套接字描述
  robj *name; //名字
  int flags; //标志
  
  sds querybuf; //输入缓冲区
  
  robj **argv; //命令与命令参数,数组
  int argc; //argv 数组长度
  
  struct redisCommand *cmd; //命令实现函数
  
  char buf[REDIS_REPLY_CHUNK_BYTES]; //固定大小 输出缓冲区,REDIS_REPLY_CHUNK_BYTES 默认值 16*1024,16kb
  int bufpos; //buf数组目前已使用的字节数量
  
  list *reply; //可变大小 输出缓冲区 链表
  
  int authenticated; //身份验证,0-1
  
  time_t ctime; //创建客户端时间
  
  time_t lastinteraction; //客户端与服务端最后一次互动时间
  
  time_t obuf_soft_limit_reached_time; //输出缓冲区第一次到达软性限制(soft limit)时间

//...
} redisClient;

1.1套接字描述

1.2名字

1.3标志

1.4输入缓冲区

1.5命令与命令参数

1.6命令的实现函数

1.7输出缓冲区

1.8身份验证

1.9时间