一:Del命令的源码
1.del命令最终都是在dict中删除。
2. 代码执行流程图:
《1》 void delCommand(redisClient *c)
《2》 dbDelete(c->db,c->argv[j])
c->db 当前是哪个DB。
c->argv[j] 命令参数【key的name】
《3》 dictDelete(db->dict,key->ptr) == DICT_OK
3. redisDb 默认有16个db,每个db=>redisDb 装一下 Redis Desktop Manager 放到云盘里面
4. 探索一下db->dict db中的所有key都是存放在dict。
二:Exists 判断当前的key是否在字典中,原理就是在dictionary中找一下key是否存在
1.代码执行流程
void existsCommand(redisClient *c)
int dbExists(redisDb *db, robj *key)
dictFind(db->dict,key->ptr) => JAVA中的Map源代码 C#中的Dictionary代码原理
三: select命令 切换数据库
1.所有默认的数据都在db0号数据库。
2.如何切换数据库
1.del命令最终都是在dict中删除。
2. 代码执行流程图:
《1》 void delCommand(redisClient *c)
《2》 dbDelete(c->db,c->argv[j])
c->db 当前是哪个DB。
c->argv[j] 命令参数【key的name】
《3》 dictDelete(db->dict,key->ptr) == DICT_OK
3. redisDb 默认有16个db,每个db=>redisDb 装一下 Redis Desktop Manager 放到云盘里面
4. 探索一下db->dict db中的所有key都是存放在dict。
二:Exists 判断当前的key是否在字典中,原理就是在dictionary中找一下key是否存在
1.代码执行流程
void existsCommand(redisClient *c)
int dbExists(redisDb *db, robj *key)
dictFind(db->dict,key->ptr) => JAVA中的Map源代码 C#中的Dictionary代码原理
三: select命令 切换数据库
1.所有默认的数据都在db0号数据库。
2.如何切换数据库