redis 增删改查原理实现

阅读更多
首先说下 redis 的数据库结构:


redisServer{

  redisDb *db // 存放服务器中所有的数据库
  int dbnum // 服务器的数据库数量

}

默认情况下,dbnum 为 16.

redisClient{
  redisDb *db // 记录客户端当前正在使用的数据库
}


redisDb{
  dict *dict // 数据库键空间,保存数据库中所有的键值对
}

可以这么理解:dict 和 Java 中的 Map 很像,k 是一个字符串,value 可以是 StringObject,也可以是 HashObject等.


数据库原来的数据结构:

dict

新增:

向数据库中添加 msg = “hello”

底层的数据结构就变成了:

dict[msg] -> "hello"

删除:

向数据库中删除 msg

底层的数据接口就变成了:

dict

修改:

修改 msg = "world"

底层的数据结构就变成了:

dict[msg] -> "world"


查找:

首先查找键 msg,然后找到键 msg 对应的值 "world".

注意:

当使用 redis 对数据库进行读写操作的时候,不仅会操作数据库,同时还会进行一些额外的操作,例如:记录命中率.

你可能感兴趣的:(redis,数据库增删查改原理)