Redis 系列(02)数据结构】的更多相关文章

前言 redis作为我们开发的一大神器,我们接触肯定不会少,但是很多同学也许只会存储String类型的值,这是非常不合理的.在这里,将带大家认识Redis的5中数据结构. 1.问:Redis有那些数据结构? 常见的5种:字符串(String),散列(Hash), 列表(List),集合(Set),有序集合(SortedSet)等:除此之外,还有HyperLogLog.Geo.Pub/Sub. 注:之前项目组也有遇见过 BloomFilter(布隆过滤器),这个能很好地防止缓存穿透的发生,它的原理…
一.概述 跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的.在大部分情况下,跳跃表的效率可以和平衡树(关系型数据库的索引就是平衡树结构)相媲美,并且因为跳跃表的实现比平衡树要来得更为简单,所以有不少程序使用跳跃表来代替平衡树. Redis使用跳跃表作为"有序集合键"的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员是比较长的字符串时,Redis就会使用跳跃表来作为有序集合键的底层实现.…
一.概述 整数集合(intset)是集合键的底层实现之一, 当一个集合只包含整数值元素,并且这个集合元素数量不多时, Redis就会使用整数集合作为集合键的底层实现.下面创建一个只包含5个元素的集合键,并且集合中所有元素都是整数值,那么这个集合键的底层实现就会是整数集合. 接着添加非整数值,集合键的底层实现就会是hashtable. > sadd numbers (integer) > object encoding numbers "intset" > sadd n…
一.概述 接着上篇继续,这篇把数据结构之字典学习完, 这篇知识点包括:哈希算法,解决键冲突, rehash , 渐进式rehash,字典API. 1.1 哈希算法 当一个新的键值对 需要添加到字典里面时,程序需要先根据“键值对”的键计算出哈希值和索引值,再根据索引值,将包含新“键值对”的哈希表节点放到哈希表数组的指定索引上面.redis计算哈希值和索引值的方法如下: #使用字典设置的哈希函数,计算键key的哈希值 hash = dict -> type->hashFunction(key);…
一. 概述 字典又称符号表(symbol table),关联数组(associative array), 映射(map),是一种用于保存键值对(key-value pair)的抽象数据结构.在字典中,一个key和一个value进行关联称为键值对.在字典中每个键都是唯一的,程序可以在字典中根据键查找关联的值,或通过键更新删除值等操作.在C语言中并没有内置这种数据结构,因此Redis构建了自己的字典实现.在Redis中应用广泛, 对数据库的增,删,查,改 都是构建在对字典的操作之上的. -- 例1…
一. 概述 链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可能通过增删节点来灵活地调整链表的长度.作为一种数据结构,在C语言中并没有内置的这种数据结构.所以Redis构建了自己的链表实现.链表在Redis中应用非常多,比如列表键的底层实现之一就是链表,当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现. -- 例1:使用integers 列表键包含了从1到10,共有10个整数 > rpush integers…
一.  SDS概述 Redis 没有直接使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(simple dynamic string, SDS)的抽象类型,并将SDS用作Redis的默认字符串表示.Redis只会使用C字符串作为字面量.在Redis里,使用SDS来表示字符串值,是一个可以被修改的字符串,字符串“键值对”底层都是由SDS实现的. -- 例1:客户端执行如下命令: > set msg "hello world" OK > get msg &quo…
一. 有序集合概述 Redis 有序集合对象和集合对象一样也是string类型元素的集合,且不允许重复的成员.不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序.有序集合的成员是唯一的,但分数(score)却可以重复. 在前面第9章中讲到Redis 数据对象对应不同底层的数据结构,对于有序集合对象 编码可以是ziplist 或者skiplist二种.skiplist编码的底层数据结构可以参考"redis 系列7 数据结构之跳跃表"…
随笔分类 - redis 系列篇 redis 系列27 Cluster高可用 (2) 摘要: 一. ASK错误 集群上篇最后讲到,对于重新分片由redis-trib负责执行,关于该工具以后再介绍.在进行重新分片期间,源节点向目标节点迁移一个槽的过程中,可以会出现该槽中的一部分键值对保存在源节点中,另一部份键值对则保存在目标节点中. 当客户端向源节点发送一个与数据库键有关的命令时,并且命令要处阅读全文 posted @ 2018-12-27 14:41 花阴偷移 阅读(263) | 评论 (0)…
目录 Redis 系列(02)数据结构 Redis 系列目录 1. String 1.1 基本操作 1.2 数据结构 1.3 Redis数据存储结构 2. Hash 2.1 基本操作 2.2 数据结构 3. List 3.1 基本操作 3.2 数据结构 4. Set 4.1 基本操作 4.2 数据结构 5. Sorted Set 5.1 基本操作 5.2 数据结构 6. hyperloglogs 7. geospatial 8. 总结 Redis 系列(02)数据结构 Redis 系列目录 1.…