redis中动态字符串sds相关的文件为:sds.h与sds.c 一、数据结构 redis中定义了自己的数据类型"sds",用于描述 char*,与一些数据结构 1 typedef char *sds; 2 3 /* Note: sdshdr5 is never used, we just acce ...
分类:
其他好文 时间:
2020-01-24 12:07:18
阅读次数:
91
源码编译redis包 下载当前最新 release 版本 redis源码包:选择4.0.14版本 http://download.redis.io/releases/ 1、开始在官网上下载包,下载到指定的路径 [root@rs1src]#cd /usr/local/src [root@rs1src] ...
分类:
其他好文 时间:
2019-12-29 22:01:48
阅读次数:
68
Linux 安装 redis 1. 下载 redis 源码包 wget http://download.redis.io/releases/redis-5.0.2.tar.gz 2. 解压 tar -zxvf redis-5.0.2.tar.gz 3. 进入redis文件夹 cd redis-5.0 ...
分类:
系统相关 时间:
2019-12-26 17:30:42
阅读次数:
78
源码阅读基于Redis4.0.9 SDS介绍 从上面的例子可以看到,key为dbname的值是一个字符串“redis” Redis源码是用c写成,但并没有使用c的字符串。c的字符串有以下缺点: 1. 没有储存字符串长度的变量,获取长度只能靠遍历字符串 2. 扩容麻烦。没有相应保护,容易造成缓冲区溢出 ...
分类:
其他好文 时间:
2019-12-24 23:23:38
阅读次数:
112
本文参考了 "Redis源码3.0分支" 和《Redis设计与实现》。 对象 Redis基于下面提到的底层数据结构创建了一个对象系统,这个系统包括 、`List Set Hash Sorted Set redisObject type encoding ptr`。 底层数据结构 SDS Simple ...
分类:
其他好文 时间:
2019-12-15 14:14:03
阅读次数:
107
一、linux下redis安装 1.redis 源码包安装 cd /opttar xf redis-3.2.10.tar.gz cd redis-3.2.10/make修改环境变量vim /etc/profile添加以下一行export PATH=/opt/redis-3.2.10/src:$PAT ...
分类:
其他好文 时间:
2019-11-23 10:06:09
阅读次数:
61
跳跃表实现简单,空间复杂度和时间复杂度也较好,Redis中使用跳表而不是红黑树。 实现参考了: "跳跃列表 维基百科,自由的百科全书" 《Redis设计与实现》第五章 跳跃表 Redis源码3.0分支src/t_zset.c等文件 插入时的核心逻辑: 1. 找到插入的位置 2. 随机得到新插入节点的 ...
分类:
其他好文 时间:
2019-11-20 16:54:47
阅读次数:
71
/* * Copyright (c) 2009-2012, Pieter Noordhuis <pcnoordhuis at gmail dot com> * Copyright (c) 2009-2012, Salvatore Sanfilippo <antirez at gmail dot co ...
分类:
其他好文 时间:
2019-11-20 12:24:58
阅读次数:
77
在 redis 源码中 dictScan 算法中用到了用到了非常经典的二进制反转算法,该算法对二进制的反转高效而实用,同时对于理解位运算也有非常大的帮助。先呈现源码: /* Function to reverse bits. Algorithm from: * http://graphics.sta ...
分类:
编程语言 时间:
2019-11-11 09:14:06
阅读次数:
125
Redis的跳跃表由如下:两个结构定义,其中 zskiplistNode结构用于表示跳跃表节点,而 zskiplist结构则用于保存跳跃表节点的相关信息,比如节点的数量,以及指向表头节点和表尾节点的指针等等 ...
分类:
其他好文 时间:
2019-10-08 18:49:45
阅读次数:
75