redis中set命令的源码分析

2018-06-17 19:51:11来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

首先在源码中的redis.c文件中有一个结构体:redisCommand redisCommandTable[],这个结构体中定义了每个命令对应的函数,源码中的set命令对应的函数是setCommand函数,这个函数是在t_string.c中进行定义的。
这个函数中开始部分根据client返回的信息做一些初始化操作,最后通过setGenericCommand函数进行具体的执行操作。
这个函数也是在t_string.c文件中。
这个函数中首先会根据初始化的参数判断当前的redis是否符合要求,所有都判读完以后通过setKey函数进行具体的操作,这个函数定义在db.c文件中。
函数的主要逻辑查询key是否已经存在,如果不存在做dbAdd操作,否则做update value的操作。

这里需要提一下的是每次set操作的val robj都是从新分配的,着从数据一致性来讲有一定的好处!

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:大型互联网应用(大数据、高并发、多样数据类型)的难点和解决方

下一篇:cstore_fdw的安装使用以及源码分析