Redis的一些结构

时间: 2024-11-19 17:57:26

Redis的一些结构的相关文章

【Redis源代码剖析】 - Redis内置数据结构之压缩字典zipmap

原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/51111230 今天为大家带来Redis中zipmap数据结构的分析,该结构定义在zipmap.h和zipmap.c文件里.我把zipmap称作"压缩字典"(不知道这样称呼正不对)是因为zipmap利用字符串实现了一个简单的hash_table结构,又通过固定的字节表示节省空间. zipmap和前面介绍的ziplist结构十分相似,我们能够对照地进行学习: Redis中

【Redis源码剖析】 - Redis内置数据结构值压缩字典zipmap

原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/51111230 今天为大家带来Redis中zipmap数据结构的分析,该结构定义在zipmap.h和zipmap.c文件中.我把zipmap称作"压缩字典"(不知道这样称呼正不正确)是因为zipmap利用字符串实现了一个简单的hash_table结构,又通过固定的字节表示节省空间.zipmap和前面介绍的ziplist结构十分类似,我们可以对比地进行学习: Redis中

redis link链表结构

link 链表结构: lpush  key  value 作用: 把值插入到链接头部 rpop  key 作用: 返回并删除链表尾元素 rpush,lpop: 不解释 lpushx  key  value 将值value插入到列表key的表头,当且仅当key存在并且是一个列表. 和LPUSH命令相反,当key不存在时,LPUSHX命令什么也不做. 返回值: LPUSHX命令执行之后,表的长度. #情况1:对空列表执行LPUSHX redis> LLEN greet    # greet是一个空列

【Redis源码剖析】 - Redis内置数据结构之字典dict

原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/51018337 今天我们来讲讲Redis中的哈希表.哈希表在C++中对应的是map数据结构,但在Redis中称作dict(字典).Redis只是用了几个简单的结构体和几种常见的哈希算法就实现了一个简单的类似高级语言中的map结构.下面我们来具体分析一下dict的实现. 在学习数据结构的时候,我们接触过一种称作"散列表"的结构,可以根据关键字而直接访问记录.说的具体一点就

了解下Redis的SDS结构

SDS (简单动态字符串) sds是Redis里面的一种结构,通过它对字符串的操作进行了很多的优化操作. SDS的结构定义 struct stdhdr { int len //记录buff数组中已使用字节的数量 int free //记录buff数组中未使用字节的数量 char buff[] //字节数组,用于保存字符串 } SDS的示例,见下图 free值为0, 表示这个SDS没有分配任何未使用空间. len值为4, 表示这个SDS保存一个四字节长的字符串. buff值为一个char类型数组,

06 redis中set结构及命令详解

集合 set 相关命令 集合的性质: 唯一性,无序性,确定性 注: 在string和link的命令中,可以通过range 来访问string中的某几个字符或某几个元素 但,因为集合的无序性,无法通过下标或范围来访问部分元素. 因此想看元素,要么随机先一个,要么全选 sadd key value1 value2 作用: 往集合key中增加元素 srem value1 value2 作用: 删除集合中集为 value1 value2的元素 返回值: 忽略不存在的元素后,真正删除掉的元素的个数 spo

redis笔记——list结构命令详解

lpush key value 作用: 把值插入到链接头部 rpop key 作用: 返回并删除链表尾元素 rpush,lpop: 不解释 lrange key start  stop 作用: 返回链表中[start ,stop]中的元素 规律: 左数从0开始,右数从-1开始 lrem key count value 作用: 从key链表中删除 value值 注: 删除count的绝对值个value后结束 Count>0 从表头删除 Count<0 从表尾删除 ltrim key start

08 redis中hash结构及命令详解

Hash 哈希数据类型相关命令 hset key field value 作用: 把key中 filed域的值设为value 注:如果没有field域,直接添加,如果有,则覆盖原field域的值 hmset key field1 value1 [field2 value2 field3 value3 ......fieldn valuen] 作用: 设置field1->N 个域, 对应的值是value1->N (对应PHP理解为 $key = array(file1=>value1, f

Redis 之string结构及命令详解

1.set  key  value  ex  秒数   px  毫秒数  nx / xx  设置一个值,注:ex 与 px 同时存在时,取写在后面的一个为有效期,nx表示key不存时设置成功,xx表示都成功 2.mset key value   key value ... 一次性设置多个key 3.setrange  key  offset   value 把字符串的offset偏移改为value 4.append  key  value  附加内容 5.getrange  key  start