• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

redis源码阅读之字符串对象模型

redis 海叔叔 2天前 6次浏览 已收录 0个评论

之前的文章介绍了redis当中的模型,今天首先来拿字符串对象说说事~
1. 设置命令
首先,redis定义了5个宏来确定当前设置的一些属性,具体如下

常规的set接口如下:

这边先是解析了一部分参数,如果类型不合法,就返回,如果合法就需要调用下面的函数
这个就是整个set命令当中的重头戏,其余的所有set操作,在确定一些其他的参数后,都会调用这个函数,具体代码如下:

这里可以看到显示确定各个参数的值的合法性以及类型,进而采取不同的操作来返回。
这里需要注意的一点是:每次调用set命令时,redis都会先调用tryObjectEncoding这个函数来尽量将值的编码类型转换为占用存储空间较小的那一个,之后才会调用setGenericCommand函数进行实际操作~~
get操作就相对没那么复杂,只需要调用底层的查找就行了

之后的一些api包括setrange, getrange, mget, mset, incrXXX那些函数基本思想都同上,先要检查参数的类型以及合法性,然后调用底层db给出的接口,然后返回,这边不再赘述,关于底层db的接口,会在讲完redis对象模型之后进行阅读以及分析~


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址