Redis源码剖析——客户端和服务器

本文详细描述了Redis客户端的创建过程,包括连接服务器、事件处理以及创建带网络连接或伪客户端的区别。同时介绍了客户端关闭的原因和底层实现,如异常退出、错误命令响应和CLIENT_KILL命令。还提及了一个关于Java开发者提升技能的学习资源包和Java面试核心知识点的重要性。
摘要由CSDN通过智能技术生成

char *name;

// 命令执行函数

redisCommandProc *proc;

// 参数个数

int arity;

// 字符串表示flag

char *sflags; /* Flags as string representation, one char per flag. */

// 实际flag

int flags; /* The actual flags, obtained from the ‘sflags’ field. */

// 指定哪些参数是key

int firstkey; /* The first argument that’s a key (0 = no keys) */

int lastkey; /* The last argument that’s a key */

int keystep; /* The step between first and last key */

// 统计信息

long long microseconds, calls;

};

客户端的创建和关闭

当客户端向服务器发出connect请求的时候,服务器的事件处理器就会对这个事件进行处理,创建相应的客户端状态,并将这个新的客户端状态添加到服务器状态结构clients链表的末尾

/*

* 创建一个新客户端

*/

redisClient *createClient(int fd){

// 分配空间

redisClient *c = zmalloc(sizeof(redisClient));

// 当 fd 不为 -1 时,创建带网络连接的客户端

// 如果 fd 为 -1 ,那么创建无网络连接的伪客户端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值