![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis源码分析
文章平均质量分 92
一群热爱代码的人
这个作者很懒,什么都没留下…
展开
-
【Redis学习笔记】bitcount分析
作者:顺风车运营研发团队 熊浩含一、命令简介BITCOUNT key [start] [end]redis计算给定字符串中,被设置为 1 的比特位的数量。redis> BITCOUNT bits(integer) 0redis> SETBIT bits 0 1 # 0001(integer) 0redis> BITCOUNT bits(in...原创 2018-07-19 14:54:28 · 674 阅读 · 0 评论 -
【Redis学习笔记】2018-07-09 Redis命令源码学习四
作者:顺风车运营研发团队 熊浩含sdiffSDIFF key [key ...]返回一个集合的全部成员,该集合是所有给定集合之间的差集。准确来说,是返回第一个集合与其它集合并集的差集,即有SDIFF A B1 B2 B3...Bn,最终返回A-(B1∪B2∪...∪Bn)不存在的 key 被视为空集。原理M(A 集合元素个数)N(其余集合元素总数)n(集合总数)算...原创 2018-07-20 09:56:00 · 166 阅读 · 0 评论 -
【Redis学习笔记】2018-07-10 Redis命令源码学习三
作者:顺风车运营研发团队 闫昌一. smove使用方式: smove source destination member使用描述: 将member元素从source集合移动到destination集合smove是原子性操作如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被...原创 2018-07-20 09:51:57 · 123 阅读 · 0 评论 -
【Redis学习笔记】2018-07-06 Redis命令源码学习二
作者:顺风车运营研发团队 谭淼一、brpoplpushbrpoplpush是rpoplpush的阻塞版本,当给定列表 source 不为空时, brpoplpush的表现和rpoplpush一样。当列表 source 为空时,brpoplpush命令将阻塞连接,直到等待超时,或有另一个客户端对 source 执行lpush或rpush命令为止。brpoplpush的源码如下:vo...原创 2018-07-20 09:49:58 · 149 阅读 · 0 评论 -
【Redis学习笔记】2018-06-28 redis命令源码学习一
作者:顺风车运营研发团队 谭淼1、dumpdump命令可以序列化给定 key ,并返回被序列化的值,使用 RESTORE命令可以将这个值反序列化为 Redis 键。/* DUMP keyname * DUMP is actually not used by Redis Cluster but it is the obvious * complement of RESTORE and c...原创 2018-07-20 09:46:45 · 185 阅读 · 0 评论 -
【Redis学习笔记】2018-06-06 rdb相关信息
作者:顺风车运营研发团队 肖涛概要:1、 阅读rdbSave源码2、 数据结构 rdbSaveInfo3、 rdb和aof的区别4、 redis的RIO和BIO5、 redis的opcode6、数据结构redisobj7、redis的lzf压缩,压缩函数rdbSaveLzfBlob详情:1、rdbSave函数。redis提供了rdb持久化的功能,通过rdb持...原创 2018-07-19 15:26:35 · 158 阅读 · 0 评论 -
【Redis学习笔记】2018-06-21 redis命令执行过程 SET
作者:顺风车运营研发团队 李乐1.命令执行过程1.1命令请求格式当用户在客户端键入一条命令请求时,客户端会将其按照特定协议转换为字符串,发送给服务器;服务器解析字符串,获取命令请求;例如,当用户执行 set key value 时,转换后的字符串为 *3rn3rnset3rnkey$5rnvaluern其中,*3表示当前命令请求参数数目(set命令也是一个参数);rn用于分隔每个参...原创 2018-07-19 15:24:21 · 280 阅读 · 0 评论 -
【Redis学习笔记】2018-05-29 redis源码学习之跳跃表
作者:顺风车运营研发团队 谭淼跳跃表(skiplist)是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到指向其他节点的目的。在Redis中,有序集合是通过跳跃表和hash实现的。一、跳跃表为了更好的阅读下面的文章,建议先对跳跃表的基本概念进行学习,链接如下:https://www.cnblogs.com/a8457...二、数据结构先看一下与跳跃表有关的数...原创 2018-07-19 15:22:08 · 157 阅读 · 0 评论 -
【Redis学习笔记】Redis跳表简析(插入过程)
作者: 顺风车运营研发团队 闫昌node和list的定义如下:typedef struct zskiplistNode { sds ele; double score; struct zskiplistNode *backward; struct zskiplistLevel { struct zskiplistNode *forward;...原创 2018-07-19 15:15:56 · 1316 阅读 · 0 评论 -
【Redis学习笔记】2018-07-11 Redis命令源码学习五
作者:顺风车运营研发团队 张仕华ZADDZADD key [NX|XX] [CH] [INCR]score member [score member ...]将元素及对应分值添加到一个有序集合中NX:不更新已经存在的key,只增加新元素XX:只更新已经存在的key,不增加新元素CH:abbr:changed.不指定时只返回新增的元素个数,指定时返回新增的和更新的元素个数之和...原创 2018-07-20 09:57:28 · 200 阅读 · 0 评论