随笔分类 - Redis
摘要:在Redis中,zset是一个复合结构: 使用hash来存储value和score的映射关系 使用跳跃表来提供按照score进行排序的功能,同时可以指定score范围来获取value列表 使用hash来存储value和score的映射关系 使用跳跃表来提供按照score进行排序的功能,同时可以指定s
阅读全文
摘要:链表 在Redis的早期版本中,存储list列表结构时,如果元素少则使用压缩列表ziplist,否则使用双向链表linkedlist 对于链表,有以下特性: 双端:节点带有prev和next指针以获取前置、后置节点 无环:表头的prev和表尾的tail指向NULL 带表头表尾指针:获取表头表尾节点复
阅读全文
摘要:当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis会使用整数集合(intset)来存储集合元素。 intset是紧凑的数组结构,同时支持16位、32位和64位整数。 结构 contents数组是整数集合的底层实现,各个项在数组中按值大小升序排列,且不包含重复项 contents数组
阅读全文
摘要:为了节约内存,在zset和hash容器对象元素个数较少时,Redis会采用压缩列表(ziplist)进行存储。 压缩列表是一块连续的内存空间,元素之间紧挨着存储,不存在冗余 一个压缩列表可以包含任意多个节点(entry),每个节点可以保存一个字节数组或者一个整数值 结构 prevlen字段长度是1个
阅读全文
摘要:dict是Redis服务器中出现最为频繁的复合型数据结构,除hash使用dict之外,整个Redis数据库中所有的key和value也会组成一个全局字典,还有带过期时间的key集合也是一个字典。 zset集合中存储value和score的映射关系也是通过dict结构实现的。 结构 内部是二维数组 d
阅读全文
摘要:C语言中,传统的字符串表示是以空字符结尾的字符数组,Redis的字符串没有直接使用该表示,而是选择构建了一种名为简单动态字符串(simple dynamic string, SDS)的抽象类型。 在Redis中,C字符串只会作为字符串字面量(string literal)用在一些无需对字符串值进行修
阅读全文

浙公网安备 33010602011771号