首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
郭强112
掘友等级
Golang工程师
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
5
文章 5
沸点 0
赞
5
返回
|
搜索文章
最新
热门
Redis源码阅读之lpush&rpush
可以看到,这两个命令都调用了pushGenericCommand函数,只是第二个参数不同,lpush对应的参数值是LIST_HEAD (0),头部插入; rpush对应的参数值是LIST_TAIL(1
Redis源码阅读之zdel
zremCommand zrem命令对应的函数为zremCommand,其定义如下: 主要逻辑为: 从数据库中查找key对应的zset对象,如果不存在则返回。如果类型不正确也返回。 遍历所有的memb
Redis源码阅读之zadd
有序集合的定义 有序集合(zet)有两种不同的编码类型: 当元素数量较少且键的长度短时,使用listpack类型。 否则,使用跳表编码。这种情况下,zset使用了跳表+哈希表。使用哈希表可以快速查找元
Redis源码阅读之sadd
入口-saddCommand函数 sadd命令对应函数saddCommand,源码如下: 逻辑如下: 通过lookupKeyWrite函数查找key,获取值为set。 如果set为NULL,则调用se
Redis源码阅读之渐进式rehash
在哈希表扩容或缩容时,如果一次迁移完所有数据,可能会导致性能阻塞问题。为了避免出现这种情况,Redis采用了渐进式 rehash的方式,将rehash操作分为多次进行,以确保系统的稳定性。在rehas
Redis源码阅读之hdel命令
hdelCommand hdel命令对应的函数为hdelCommand,源码如下: 其重要逻辑为: 通过lookupKeyWriteOrReply函数查找key对应的值对象,如果不存在则返回0。如果存
Redis源码阅读之hget命令
hget命令对应的函数为hgetCommand,源码如下: 可以看到,查找的主要逻辑为: 调用lookupKeyReadOrReply,在db的全局字典中查找key,如果不存在,或者类型不正确,则返回
Redis源码阅读之hset命令
hset命令对应函数hsetCommand,位于t_hash.c文件中,源码如下: 逻辑梳理: 判断参数个数是否为奇数,如果是则返回错误信息。 调用hashTypeLookupWriteOrCreat
Redis源码阅读之del命令
delCommand位于db.c文件,函数定义如下: 逻辑梳理: 遍历所有的键,接近性删除。首先执行expireIfNeeded,进行过期删除操作;然后判断是否是惰性删除,如果是,则调用dbAsync
Redis源码阅读之get命令
get命令对应源码中的函数名getCommand,对应文件是t_string.c。相关源码如下: 可以看到,主要逻辑为: 查找对应的键,如果结果为NULL,则返回C_OK。 如果查到到的结果的类型不是
下一页
个人成就
文章被点赞
17
文章被阅读
13,337
掘力值
628
关注了
7
关注者
10
收藏集
0
关注标签
4
加入于
2023-02-19