码迷,mamicode.com
首页 > 数据库 > 详细

[redis读书笔记] 第二部分 单机数据库

时间:2017-03-01 16:41:50      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:client   ges   入参   src   and   读书笔记   笔记   执行   对象   

一 命令下发的实现

  redis.c里,大家能看到redisCommandTable[] 的实现,列出了支持的所有命令。大部分的入参为redisClient *c,当一条REDIS命令下发,调用流程如下

技术分享

在createClient里会组装下传的client,其中就会调用selectDb()来选择数据库,而数据库中存储了一个字典结构dict *dict,这个dict里的键就是执行REDIS命令的键,值即redis对象robj。

 redisDb里的结构如下,下图已经是个抽象的图,比如HashObject,理论上应该有个redisObjct的结构,然后ptr指到一个dict的结构,然后才到一个个的entry等:

技术分享

 那么所有的对DB的读、新增、更新,都是现在redisDb.dict里找/新增 键值(对象的键值)(比如上图的book),然后更新dict里对应键的那个值(robj,比如HashObject)里的内容(比如name,author或者publisher)。

[redis读书笔记] 第二部分 单机数据库

标签:client   ges   入参   src   and   读书笔记   笔记   执行   对象   

原文地址:http://www.cnblogs.com/jiangz222/p/6484259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!