
Redis系列
Redis
Aaron_涛
囧囧有神
展开
-
Redis-数据结构与对象-对象
1.作用 Redis使用对象作为五种不同类型的底层实现,字符串,列表,哈希,集合,有序集合等 而对象是基于之前的分析的数据结构创建的。每个对象都至少用到一种数据结构,这意味着,Redis五大类型,底层实现是可以有多种实现的,这方便在不同场景下选择合适的底层结构,优化性能 在Redis中,键和值均为一个对象 2.数据结构 typedefstructredisObject{ ...原创 2019-01-17 17:08:05 · 7649 阅读 · 9 评论 -
Redis-数据结构与对象-压缩列表
1. 作用 压缩列表是列表键和哈希键的底层实现之一 当一个列表键只包含少量列表项,并且每个列表要么就是小整数值,要么就是长度比较短的字符串,那么使用压缩列表作为底层实现 当一个哈希键只包含少量键值对,而且每个键值对的键和值要么是小整数值要是就是长度比较短的字符串,那么底层实现是压缩列表 2. 数据结构 压缩列表是Redis为了节约内存而开发的,是一系列特殊编码的连续内存块组成的顺序...原创 2019-01-17 17:04:59 · 474 阅读 · 0 评论 -
Redis-数据结构与对象-整数集合
1. 作用 整数集合是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多,Redis会使用整数集合作为集合的底层实现 2. 数据结构 typedef struct intset{ //编码方式 uint32_t encoding; //集合包含的元素数量 uint32_t length; //保存元素的数组 ...原创 2019-01-17 17:03:17 · 385 阅读 · 0 评论 -
Redis-数据结构与对象-跳跃表
1. 作用 跳跃表在Redis中主要运用在有序集合和集群节点用作内部数据结构 2. 数据结构 typedef struct zskiplist{ zskiplistNode *header; //跳跃表头节点 zskiplistNode *tail; //跳跃表尾节点 int level; //层数,跳跃表中节点最大层数 int len...原创 2019-01-08 11:57:57 · 449 阅读 · 0 评论 -
Redis-数据结构与对象-字典
1. 作用 字典类似Java中的Map 在Redis中用在做数据库底层和哈希键的使用 例如 SET msg “redis” msg就是键,redis就是值,底层就是保存在字典中 当一个哈希键包含的键值对比较多,又或者键值对中的元素都是比较长的字符串,Redis会使用字典作为哈希键的实现 那么,比较少键值对就不会使用字典咯? 2. 数据结构 typedef struct d...原创 2019-01-04 16:31:49 · 510 阅读 · 0 评论 -
Redis-数据结构与对象-链表
1. 作用 Redis中链表被广泛运用在很多地方,例如 列表键,发布订阅,慢查询,监视器,Redis服务器本身还是要链表保存多个客户端状态信息,以及运用链表构建客户端输出缓冲区 2. 数据结构 typedef struct listNode{ //前置节点 struct listNode *prev; //后置节点 struct listNode ...原创 2019-01-04 16:30:08 · 396 阅读 · 0 评论 -
Redis-数据结构与对象-简单动态字符串
1. Redis中的String 在Redis中没有使用c语言的字符串,而是使用了一种叫做简单动态字符串的数据结构,简称SDS,而c中的字符串在Redis只有字面量,且无需对字符串内容修改的时候才使用,其他时候都是使用SDS 例如 set msg “redis” 其中msg和”redis“ 底层均为SDS 例如 redisLog("asdasdasd") 这个时候就是使用c语言字符...原创 2019-01-03 19:41:31 · 407 阅读 · 0 评论