Redis
文章平均质量分 71
AI小夜
这个作者很懒,什么都没留下…
展开
-
Redis数据结构和对象(五)
Redis数据结构和对象(一) Redis数据结构和对象(二) Redis数据结构和对象(三) Redis数据结构和对象(五) Redis数据结构和对象(六) Redis数据结构和对象(七)——对象一,整数集合。1,用途:集合键的底层实现之一。当一个集合中只包含整数值元素时,并且元素数量不多时。2,数据结构。 3,升级。 1)操作。 a) 根据新元素类型,扩展整数集合底层数组的空间原创 2016-11-27 13:06:22 · 387 阅读 · 0 评论 -
Redis数据结构和对象(一)
一,简单动态字符串(SDS)1,用途:保存数据库中的字符串值,及用作缓冲区(AOF)。2,数据结构。 3,SDS与C字符串的区别。 1)常数复杂度获取字符串长度。SDS会记录自身的长度信息。2)杜绝缓冲区溢出。C字符串不记录自身长度很容易造成缓冲区溢出。3)减少修改字符串时带来的内存重分配次数。 a) c字符串内存重分配。 拼接:拼接前需要内存重分配,扩展底层数组的大小,——如果忘了可原创 2016-11-27 11:19:20 · 515 阅读 · 0 评论 -
Redis数据结构和对象(二)
一,链表1,用途:链表键,发布与订阅,慢查询,监视器。2,数据结构。 3,特点: 双端。带有prev和next指针。无环。prev和next指针都指向NULL。带表头指针和表尾指针。带链表长度计时器。访问长度的复杂度为O(1)。多态。链表节点使用void*指针来保存节点值。可以为链表设置不同类型特定函数。原创 2016-11-27 11:32:16 · 417 阅读 · 0 评论 -
Redis数据结构和对象(三)
一,字典。1,用途:表示数据库,哈希键的底层实现之一。2,数据结构。 1)哈希表结构。 2)哈希表节点结构。 3)字典结构。 4)字典特定类型函数。 3,算法实现。 1)哈希算法:根据键值对的键计算出哈希值和索引值。再根据索引值,将包含新键值对的哈希表节点放到哈希表数组的指定索引上。2)解决键冲突:使用链地址法解决冲突。多个哈希表节点可以用next指针构成一个单向链表。3)rehash。原创 2016-11-27 12:52:36 · 618 阅读 · 0 评论 -
Redis数据结构和对象(六)
一,压缩列表。1,用途:列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且列表项要么是小整数值,要么是长度比较短的字符串。2,数据结构。 1)压缩列表的构成。2)压缩列表节点的构成。 a) previous_entry_length 长度可以为1字节或者5字节。前一节点的长度小于254,这个属性的长度1.如果大于等于254,则previous_entry_length属性原创 2016-11-27 13:37:18 · 518 阅读 · 0 评论 -
Redis数据结构和对象(七)——对象
一,对象。1,Redis的主要数据结构:简单动态字符串(SDS),双端列表,字典,压缩列表,整数集合,跳跃表等。Redis内包的对象包括以下五种字符串对象,列表对象,哈希对象,集合对象,有序集合对象。这些对象都使用到最少一种的前面介绍的数据结构。2,Redis的对象系统还实现了基于引用计数技术的内存回收机制。3,对象的引用计数还带有对象共享作用。Redis在初始化服务器时就会创建一万个字符串对原创 2016-11-27 14:49:18 · 945 阅读 · 0 评论